VPS 如何搭建 Python 環境?

好把,我承認我有點笨,搜索了好多都搜不到合適的,目前的需求是在純凈的 VPS 里(Debian 或CentOS)中安裝 Python 所需求的環境,框架是Web.Py,當然其他的也可以。

搜到的好多教程都不完整。


匿名用戶說了,應該用 virtualenv(或用起來更方便的 pyenv、virtualenvwrapper),這點在你要部署多個應用的時候特別重要,可以確保你的不同應用之間依賴是隔離的。

除此以外,很多發行版的 Python 版本是很老的(其中以 RedHat/CentOS 為甚),一般 Web 應用用 Python 2.7 比較多。這種情況下建議自己安裝不同版本的 Python,然後在創建 virtualenv 的時候指明需要的 Python 版本。

virtualenv -p /path/to/your/python/bin/python venv

# or

mkvirtualenv -p /xx/pythons/CPython/2.7.5/bin/python app-name

如果使用了 pyenv 就更簡單的(需要安裝 pyenv-virtualenv 插件):

pyenv install 2.7.5
pyenv virtualenv 2.7.5 myapp
pyenv shell myapp # switch to the virtualenv

在 Web 應用部署方面,推薦用 Gunicorn - Python WSGI HTTP Server for UNIX 做 WSGI 伺服器,Gunicorn 在 virtualenv 中運行並監聽一個埠,然後前端用 Nginx 之類的伺服器反向代理回來。如果需要使用非同步網路模式(比如聊天室或實時推送應用),可以用 gevent: A coroutine-based network library for Python 來運行 Gunicorn,具體參考文檔。FastCGI (flup)似乎不是一個很好的選擇。


以 Debian 為例。

首先安裝 VirtualEnv 環境,頭兩句一般需要 sudo 或者 su 許可權:

sudo apt-get install pip

sudo pip install virtualenv virtualenvwrapper

echo "source /usr/local/bin/virtualenvwrapper.sh" &>&> ~/.bashrc

然後建立開發環境

mkvirtualenv webpy

這時候假設原來提示符是 $,現在會變成 (webpy) $ 這樣

對於使用之前建立過的 virtualenv 環境,用 workon & 比如 workon webpy

然後用 pip 安裝相關的包

pip install web.py flup

碰到什麼問題,評論在下面


本身就有python吧,不過一般的python版本會比較低,如果想要升級python,可以看下這篇文章 升級python到最新2.7.x -- linux


VPS:搬瓦工

系統版本:centos-7-x86_64

利用pyenv裝python3.5.2

以下是代碼:

yum clean all
yum groupinstall "Development Tools"

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

echo "export PATH="$HOME/.pyenv/bin:$PATH"" &>&> ~/.bashrc
echo "eval "$(pyenv init -)"" &>&> ~/.bashrc
echo "eval "$(pyenv virtualenv-init -)"" &>&> ~/.bashrc
source ~/.bashrc
pyenv

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel libxslt-devel

libjpeg-turbo-devel
pyenv install -l
pyenv install 3.5.2
pyenv versions
pyenv global 3.5.2
pyenv -V

各步驟:

## 清除緩存目錄(/var/cache/yum)下的軟體包及舊的headers: yum clean all

## 安裝必要的開發包: yum groupinstall "Development Tools"

## 安裝pyenv: curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

*按找提示將以下提示下方的類似以下形式的內容複製到「~/.bash_profile」文件中

#pyenv

export PATH="/root/.pyenv/bin:$PATH"

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

### 定義pyenv環境變數

echo "export PATH="$HOME/.pyenv/bin:$PATH"" &>&> ~/.bashrc

echo "eval "$(pyenv init -)"" &>&> ~/.bashrc

### 添加pyenv初始化到你的shell

echo "eval "$(pyenv virtualenv-init -)"" &>&> ~/.bashrc

### 立刻載入,使之生效

source ~/.bashrc

### 輸入「pyenv」,出現以下內容,表示安裝成功

pyenv 1.0.2

Usage: pyenv & [&]

Some useful pyenv commands are:

commands List all available pyenv commands

local Set or show the local application-specific Python version

global Set or show the global Python version

shell Set or show the shell-specific Python version

install Install a Python version using python-build

uninstall Uninstall a specific Python version

rehash Rehash pyenv shims (run this after installing executables)

version Show the current Python version and its origin

versions List all Python versions available to pyenv

which Display the full path to an executable

whence List all Python versions that contain the given executable

See `pyenv help &" for information on a specific command.

For full documentation, see: https://github.com/yyuu/pyenv#readme

註:

1.pyenv 的 github 地址: https://github.com/yyuu/pyenv-installer

2.PyPI(Python Package Index)是 python 官方的第三方庫的倉庫,所有人都可以下載第三方庫或上傳自己開發的庫到 PyPI。python 2.7.9 和 3.4 以後的版本已經內置

pip程序,所以不需要安裝。

## 安裝python

### 安裝python依賴包 yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-

devel libxslt-devel libjpeg-turbo-devel

*其中,db4-devel找不到安裝包, libxml2-devel在yum groupinstall "Development Tools"時,會被安裝

### 查看pyenv支持列表 pyenv install -l

### 選擇python3.5.2進行安裝 pyenv install 3.5.2

### 查看已安裝的python版本 pyenv versions

### 切換到python3.5.2,並驗證 pyenv global 3.5.2

python -V

******************* 安裝 PIP **************************

## 安裝pip wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

******************* 安裝 pyenv-virtualenv **************************

## 安裝pyenv-virtualenv git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

*如果提示「目錄不為空」,就用"rm -rf"刪除改該目錄後,再次安裝。

### 添加pyenv virtualenv初始化你的shell

echo "eval "$(pyenv virtualenv-init -)"" &>&> ~/.bash_profile

### 重啟shell,載入pyenv virtualenv

exec "$SHELL"

### 創建一個版本為3.5.2,名字叫做「my-test」的環境

pyenv virtualenv 3.5.2 my-test

### 進入該環境

pyenv activate my-test

### 退出該環境

pyenv deactivate

### 刪除該環境

pyenv uninstall my-test

### 列出所有創建的環境

pyenv virtualenvs

*每一個環境都有兩個名稱,它們地址相同,名稱不同,一個是自定義名稱,一個自動生成的名稱。樣式如下

3.5.2/envs/my-test (created from /root/.pyenv/versions/3.5.2)

my-test (created from /root/.pyenv/versions/3.5.2)


剛好記錄了完整的配置過程:

VPS環境搭建詳解 (Virtualenv+Gunicorn+Supervisor+Nginx)


首先安裝 VirtualEnv 環境,頭兩句一般需要 sudo 或者 su 許可權:

sudo apt-get install pip

sudo pip install virtualenv virtualenvwrapper

echo "source /usr/local/bin/virtualenvwrapper.sh" &>&> ~/.bashrc


一句話關閉你的問題,Anaconda或者 ActivePython。


今天是2017年2月14日情人節,Linode推出了1G/5刀每月的VPS,應該是目前市場上性價比最高的了。Linode是互聯網上有口皆碑的服務商。

SSD Cloud Hosting amp; Linux Servers


去 github上找一個開源的 Python web.py的框架。

然後去找 裡面的 HOWTO 文檔。

我沒有這干過,但是只是提一個思路。


這個要看你如何使用的,DEBIAN和UNBUTU默認都是已經安裝PYTHON的,如果你需要安裝其他組件支持,然後再通過安裝PIP之後直接安裝。


推薦閱讀:

為什麼 Python 不用 C++ 實現?
Python為什麼直接運行和在命令行運行同樣語句但結果卻不同,他們的緩存機制不同嗎?
在Mac系統下python如何安裝第三方函數庫?
Python3如何實現兩個列表的交叉列印?
初學python,pycharm和Spyder哪個好?

TAG:Python | VPS | Python入門 |