gpt4 book ai didi

python - 让 Django 1.7 在 Google App Engine 上运行

转载 作者:太空狗 更新时间:2023-10-29 21:15:26 25 4
gpt4 key购买 nike

谁能帮我们指出如何让 Django >1.5 在 Google App Engine 上运行的说明?我看到很多人声称他们的 Django 1.6 正在运行。我们希望运行 1.6 或 1.7。我在这里搜索了有关如何设置它的说明。到目前为止没有运气。

更新:在我们的开发机器中,我们安装了 Django 1.7(/user/local 和 virtualenv)。但是,如果我们修改 GAE yaml 以使用 Django 1.7,我们会收到以下错误消息:

google.appengine.api.yaml_errors.EventError: django version "1.7" is not supported, use one of: "1.2", "1.3", "1.4", "1.5" or "latest" ("latest" recommended for development only)   in "./app.yaml",

我们的/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib 目录中安装的 1.9.12 版 GoogleAppEngine sdk 显示了以下列出的 Django 版本:

  1. django-0.96 django-1.2 django-1.3 django-1.4 django-1.5

我的问题是关于如何在 Google App Engine 上为 Django 1.7 正确设置开发环境,以及如何确保在生产环境中部署到 Google App Engine 时使用 Django 1.7 成功部署我们的应用程序。当我们部署我们的应用程序时,我们如何让 Django 1.7 部署在 GAE 上?

最佳答案

You can use any pure Python third party libraries in your Google App Engine application. In order to use a third party library, simply include the files in your application's directory, and they will be uploaded with your application when you deploy it to our system. You can import the files as you would any other Python files with your application.

我的应用程序以这种方式使用 Django 1.7,一切正常。但是,有时由于 App Engine 的限制及其细节,您可能需要破解一些东西。但这取决于您的用例。

我还建议为您的项目使用虚拟环境。直接通过 pip 安装 App Engine 不支持的每个库,然后在您的应用程序目录中创建指向给定库的符号链接(symbolic link)。

通过这种方式,您可以将所有必需的包保存在一个文件(例如 requirements.txt)中,该文件可以与您的源文件一起存储在 SCM 系统(例如 Git)中,其他团队成员可以很容易地复制您的工作环境。

假设您使用虚拟环境并通过 pip 安装所有需要的库(Django,...),这里是适合您的目录布局。

  • 虚拟环境根目录
    • .Python
    • 包括
    • 图书馆
    • app-engine-project-root
      • 应用.yaml
      • django-project-root
      • django-app-root
      • symlink-to-django -> lib/python2.7/site-packages/django
      • symlink-to-another-lib -> lib/python2.7/site-packages/...

可以使用以下命令轻松部署这样的布局。

$ appcfg.py update app-engine-project-root

或使用 App Engine 开发服务器进行测试。

$ dev_appserver.py app-engine-project-root

更新

从 App Engine Python SDK 版本 1.9.15 开始,您可以使用 vendoring设立第三方图书馆的机制。您不必再在指向 Python lib 文件夹的应用程序目录中创建符号链接(symbolic link)。

直接在您的应用程序根目录中创建 lib 目录,并通过 appengine_config.py 文件告诉您的应用程序如何在此目录中查找库。

from google.appengine.ext import vendor

# Add any libraries installed in the "lib" folder.
vendor.add('lib')

新的目录布局如下。

  • 虚拟环境根目录
    • .Python
    • 包括
    • 图书馆
    • app-engine-project-root
      • 应用.yaml
      • appengine_config.py
      • django-project-root
      • django-app-root

使用带有 -t lib 标志的 pip 在此目录中安装库。

$ pip install -t lib [lib-name]

或者

$ pip install -t lib -r requirements.txt

关于python - 让 Django 1.7 在 Google App Engine 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26207326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com