博文

目前显示的是 一月, 2016的博文

AD

SAE_python安装第三方包方法二

在本地创建Python虚拟环境目录ENV,启动虚拟环境。

$ virtualenv --no-site-packages ENV
$ source ENV/bin/activate
(ENV)$
可以看到命令行提示符的前面多了一个(ENV)的前缀,现在我们已经在一个全新的虚拟环境中了。

使用pip安装应用所依赖的包并导出依赖关系到requirements.txt。

(ENV)$ pip install Flask Flask-Cache Flask-SQLAlchemy
(ENV)$ pip freeze > requirements.txt
编辑requirements.txt文件,删除一些sae内置的模块,eg. flask, jinja2, wtforms。

使用dev_server/bundle_local.py工具,将所有requirements.txt中列出的包导出到本地目录virtualenv.bundle目录中。如果文件比较多的话,推荐压缩后再上传。

(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的搜索路径中,示例代码如下:

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压缩包,可能会报错
到此,所有的依赖包已经导出并加入到应用的目录里了。

NOTES:

删除requirements.txt中的wsgiref==0.1.2依赖关系,因为可能导致 bundle_lo…

SAE_python安装第三方包

把你要使用的第三方包下载回来;
创建一个名为:virtualenv.bundle.zip 的压缩包 把你要安装的包都放到压缩包;
将这个包上传/更新至python应用根目录;
修改应用根目录下的index.wsgi文件


import sys
app_root = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(app_root, ‘virtualenv.bundle.zip‘))



注意:sys.path.insert 改行内容一定要放到import后面,因为python是解释型语言。不要放在urls响应后面,否则会提示没这个包。