您可以在 Google App Engine 应用程序中使用任何纯 Python 第三方库。为了使用第三方库,只需将文件包含在您的应用程序目录中,当您将其部署到我们的系统时,它们将与您的应用程序一起上传。您可以像导入应用程序中的任何其他 Python 文件一样导入这些文件。
我有这样使用 Django 1.7 的应用程序,一切正常。但是,有时由于 App Engine 的限制及其具体情况,您可能需要进行一些破解。但这取决于您的用例。
我还建议您的项目使用虚拟环境。直接通过 pip 安装 App Engine 不支持的每个库,然后在应用程序目录中创建一个指向给定库的符号链接。
这样,您可以将所有必需的包保存在一个文件中(例如,requirements.txt),该文件可以与您的源文件一起存储在 SCM 系统(例如,Git)中,并且其他团队成员可以非常轻松地复制您的工作环境。
如果您使用虚拟环境并通过 pip 安装所有需要的库(Django,...),这里是适合您的目录布局。
- virtual-env-root
- .Python
- bin
- include
- lib
- app-engine-project-root
- app.yaml
- django 项目根目录
- Django 应用程序根目录
- 符号链接到 django -> lib/python2.7/site-packages/django
- 符号链接到另一个库 -> lib/python2.7/site-packages/...
可以使用以下命令轻松部署这样的布局。
$ appcfg.py update app-engine-project-root
或者使用 App Engine 开发服务器进行测试。
$ dev_appserver.py app-engine-project-root
UPDATE
从 App Engine Python SDK 版本 1.9.15 开始,您可以使用贩卖建立第三方库的机制。您不必再在应用程序目录中创建指向 Python lib 文件夹的符号链接。
直接在应用程序根目录中创建 lib 目录,并告诉您的应用程序如何通过以下方式查找此目录中的库appengine_config.py
file.
from google.appengine.ext import vendor
# Add any libraries installed in the "lib" folder.
vendor.add('lib')
新的目录布局如下。
- virtual-env-root
- .Python
- bin
- include
- lib
- app-engine-project-root
- lib
- app.yaml
- appengine_config.py
- django 项目根目录
- Django 应用程序根目录
使用带有 -t lib 标志的 pip 在此目录中安装库。
$ pip install -t lib [lib-name]
Or
$ pip install -t lib -r requirements.txt