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了。