當你的應用依賴不少第三方包時,能夠使用virtualenv來管理並導出這些依賴包,流程以下:python
首先,建立一個全新的Python虛擬環境目錄ENV,啓動虛擬環境。flask
$ virtualenv --no-site-packages ENV
$ source ENV/bin/activate
(ENV)$
能夠看到命令行提示符的前面多了一個(ENV)的前綴,如今咱們已經在一個全新的虛擬環境中了。app
使用pip安裝應用所依賴的包並導出依賴關係到requirements.txt。工具
(ENV)$ pip install Flask Flask-Cache Flask-SQLAlchemy
(ENV)$ pip freeze > requirements.txt
編輯requirements.txt文件,刪除一些sae內置的模塊,eg. flask, jinja2, wtforms。ui
使用dev_server/bundle_local.py工具,將全部requirements.txt中列出的包導出到本地目錄virtualenv.bundle目錄中。若是文件比較多的話,推薦壓縮後再上傳。spa
(ENV)$ bundle_local.py -r requirements.txt
(ENV)$ cd virtualenv.bundle/
(ENV)$ zip -r ../virtualenv.bundle.zip .
將virutalenv.bundle目錄或者virtualenv.bundle.zip拷貝到應用的目錄下。命令行
修改index.wsgi文件,在導入其它模塊以前,將virtualenv.bundle目錄或者virtualenv.bundle.zip添加到module的搜索路徑中,示例代碼以下:orm
import os import sys app_root = os.path.dirname(__file__) # 二者取其一 sys.path.insert(0, os.path.join(app_root, 'virtualenv.bundle')) sys.path.insert(0, os.path.join(app_root, 'virtualenv.bundle.zip')) //坑爹的地方來了,最好不要使用zip壓縮包,會報錯,使用上面的文件夾最好
到此,全部的依賴包已經導出並加入到應用的目錄裏了。server
更多virtualenv的使用能夠參考其官方文檔。 http://pypi.python.org/pypi/virtualenvip
註解