SAE安装最新版Flask及Flask插件
SAE官方预安装Flask 0.7 版本,想安装Flask-security插件,发现需要Flask 0.8以上版本,索性直接上传最新版的Flask。 以下摘自SAE Python官方文档 上传没预装的模块,需要提供版本列表文本文件(如requirements.txt),并用SAE提供的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'))
====== 当前最新版的Flask是0.10.1,pip安装Flask会安装以下依赖包
Flask==0.10.1 itsdangerous==0.23 Jinja2==2.7.1 MarkupSafe==0.18 Werkzeug==0.9.4
除itsdangerous外的包都在SAE预装模块列表中,且版本符合flask v0.10.1的要求。所以只需要导出Flask==0.10.1和itsdangerous==0.23 我还安装了Flask-Security包,依赖项如下:
Flask-Login==0.2.7 Flask-Mail==0.9.0 Flask-Principal==0.4.0 Flask-Security==1.6.9 Flask-WTF==0.9.1 WTForms==1.0.4 blinker==1.3 passlib==1.6.1
所以我的requirements-sae.txt文件如下:
Flask==0.10.1 itsdangerous==0.23 Flask-Login==0.2.7 Flask-Mail==0.9.0 Flask-Principal==0.4.0 Flask-Security==1.6.9 Flask-WTF==0.9.1 WTForms==1.0.4 blinker==1.3 passlib==1.6.1
上传之后就可以使用最新版的Flask了。
