在virtualenv下deploy python程序

[b]virtualenv:[/b][url]http://pypi.python.org/pypi/virtualenv[/url]

virtualenv可以建立一個乾淨的python運行環境,可以有單獨的python運行文件和庫,從而將其它環境隔離開來,更換和升級庫也不會對其它的程序造成影響。

通過setuptools可以直接安裝: easy_install virtualenv

如果easy_install安裝不成功,則可下載安裝包,解壓後運行:python setup.py install

[b]新建env[/b]
如下命令新一個環境ENV, 將在當前目錄下新建一個名爲ENV的文件夾,python解釋程序和一些庫會安裝到該文件下。對windows和linux所建的子文件夾不同。

python virtualenv.py ENV
#or: virtualenv ENV


(1)windows
> Scripts: 可運行腳本和python解釋器,easy_install也安裝在該目錄
> Lib: 一些標準庫和site-packages子目錄
使用環境:Scripts\activate.bat; 停止使用Scripts\deactivate.bat

(2)linux
> bin
> lib
> include
使用環境:source bin/activate; 停止使用deactivate

virtualenv新建環境時,easy_install和pip也將安裝。這樣當激活環境後使用easy_install安包時,將安裝在ENV環境下。

使用如下命令來檢測環境變量:

source bin/activate
python
>>>import os
>>>for i in os.path:
>>> print i

可以發現ENV下文件夾在python標準安裝之前,這樣需要import一個包時,會優先從ENV環境下尋找,然後再是標準安裝。新建環境時使用--no-site-packages將不使用標準的site-packages:
[code]
python virtualenv.py --no-site-packages ENV
[/code]

當需要使script自動使用ENV環境時,將如下行添加在script文件開始處:

#!/path_to_env/bin/python


[b]For Reference[/b]
[code]
cd /srv/pyenv
python virtualenv osqa
cd osqa
cp ~/OSQA /osqa
[/code]
/srv/pyenv/osqa路徑下將包含如下子文件夾:bin,lib,include,osqa,即將程序文件夾osqa放在環境osqa下與bin,lib同一級。

[b]參考[/b]
[list]
[*][url]http://www.rainsts.net/article.asp?id=1004[/url]
[*][url]http://imtx.me/archives/1519.html[/url]
[*][url]http://lucumr.pocoo.org/2008/7/17/deploying-python-web-applications/[/url]
[*][url]http://pypi.python.org/pypi/virtualenv[/url]
[/list]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章