让 Django 1.7 在 Google App Engine 上运行

2023-11-25

任何人都可以帮助向我们指出如何让 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 上?


您可以在 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 Django 1.7 在 Google App Engine 上运行 的相关文章

  • BeautifulSoup 不适用于某些网站

    我有这个脚本 import urrlib2 from bs4 import BeautifulSoup url http www shoptop ru page urllib2 urlopen url read soup Beautiful
  • Pandas:根据其他多级列对最里面的列进行分组排序

    考虑下面的 df In 3771 df pd DataFrame A a 11 B b 11 C C1 C1 C2 C1 C3 C3 C2 C3 C3 C2 C2 D D1 D2 D1 D3 D3 D2 D4 D4 D1 D2 D3 E v
  • 如果新文件不存在则写入新文件,如果存在则追加到文件

    我有一个程序可以写入用户的highscore到一个文本文件 该文件由用户选择时命名playername 如果具有该特定用户名的文件已经存在 那么程序应该附加到该文件 以便您可以看到多个highscore 如果具有该用户名的文件不存在 例如
  • Python - 在先前已在全局范围内查找的函数内重新分配名称

    为什么我在下面的第三个代码中出现错误 但在前两个代码中却没有出现错误 我使用的是 Python 3 6 0 Anaconda 4 3 1 64 位 Jupyter Code 1 c 100 def fib c 20 a c print a
  • 如何在 python 中连接到 GObject 信号,而不保留对连接器的引用?

    问题基本上是这样的 在 python 的 gobject 和 gtk 绑定中 假设我们有一个在构造时绑定到信号的类 class ClipboardMonitor object def init self clip gtk clipboard
  • Python:选择多个已安装模块版本之一

    在我的系统上 我多次安装了多个模块 举个例子 numpy 1 6 1安装在标准路径中 usr lib python2 7 dist packages 我有一个更新版本numpy 1 8 0安装于 local python lib pytho
  • Django:Whitenoise 在调试错误的情况下无法在生产中工作

    我有一个带有静态文件白噪声的 Django 应用程序 但是 当我使用 Google Lighthouse 测试该应用程序时 系统要求我为静态 js 和 css 文件启用文本压缩 我读了很多相关帖子但找不到答案 我也按照 Heroku 的指南
  • Python 对象初始化错误。或者我误解了对象的工作原理? [复制]

    这个问题在这里已经有答案了 1 import sys 2 3 class dummy object 4 def init self val 5 self val val 6 7 class myobj object 8 def init s
  • 放弃处理 无法处理视频 - Youtube API?

    我正在使用 youtube data v3 api 通过我的网站上传 mp4 视频 http post 请求如下所示 access token request session access token url https www googl
  • 继承类中的python __init__方法[重复]

    这个问题在这里已经有答案了 我想为子类提供一些额外的属性 而不必显式调用新方法 那么有没有办法给继承的类一个 init 不重写的类型方法 init 父类的方法 我编写下面的代码纯粹是为了说明我的问题 因此属性等的命名很糟糕 class in
  • 您能否从函数、args 和 kwargs 确定变量将如何分配?

    我有一些样板逻辑 我想包装几个具有相同可选关键字的函数 现在看起来像下面的代码 但是 这仅处理 opt key 作为关键字传递的情况 而不是按位置传递 解决这个问题的一种方法是了解如何解决参数分配 是否有一些元函数接受函数 args 和 k
  • VS Code Pylance 不突出显示变量和模块

    我正在使用带有 Python 和 Pylance 扩展的 VS Code 我遇到的问题是 Pylance 扩展没有对模块和数据框等内容进行语法突出显示 我希望顶部的模块为绿色 df 变量为蓝色 我正在使用默认的深色 颜色主题 这是我的 VS
  • Anaconda (Python) - Windows 10 上的 Cmder 集成

    我在 Windows 10 64 位上通过 Anaconda 让 Cmder 使用 Python 时遇到了一些麻烦 我让 Anaconda 工作得很好 测试过用 matplotlib 绘制一些东西 它与 Anaconda Prompt 一起
  • 导入pytorch时,未安装microsoft Visual C++ Redistributable

    我在一台带有 GPU 的 Windows 机器上工作 我已经在 conda 环境中安装了 pytorch conda install pytorch torchvision cudatoolkit 10 1 c pytorch 然后我运行
  • 带参数的 Python 列表过滤

    python中有没有一种方法可以在列表上调用过滤器 其中过滤函数在调用期间绑定了许多参数 例如有没有办法做这样的事情 gt gt def foo a b c return a lt b and b lt c gt gt myList 1 2
  • 如何下载和使用对象检测数据集(例如 coco 或 pascal)

    我对物体检测领域非常陌生 我想知道是否有人可以帮助我下载和使用对象检测数据集 例如 coco 或 pascal 当我下载数据集后访问他们的网站时 我觉得我不知道应该如何处理它们 我知道这个问题很愚蠢 但是开始的提示可能非常有用 谢谢 我正在
  • 将glade接口放入python中

    我在 Glade 中制作了一个 gui 我想将其放入 python 程序中 我正在调整我在网上找到的教程中的说明 以将其加载到我的林间空地文件中 http www pygtk org articles pygtk glade gui Cre
  • 使用 PyCharm 分析 Django

    即使在开发环境中 我的应用程序也相当慢 所以我想找出是什么导致它变慢 以便我可以尝试修复它 我了解调试工具栏 根据它的报告 数据库查询和下载的源都不是问题 所以它一定是业务逻辑 但是 我无法使用 Django 服务器运行 PyCharm 分
  • 从 s3 获取 ogg 轨道的长度而不下载整个文件

    如何在不下载整个文件的情况下获取 ogg 文件的播放长度 我知道这是可能的 因为 HTML5 标签和 VLC 都可以在加载 URL 后立即显示整个播放长度 而无需下载整个文件 有标题或我可以阅读的内容吗 也许甚至是比特率 我可以将其除以文件
  • 媒体文件上的 404 - Django

    昨晚我将项目上传到 pythonanywhere com 我想在那里测试我的项目生产设置 在我允许的模型之一中用户上传JPG 团队徽标 上传过程运行良好 文件位于我的 MEDIA ROOT 中 问题是 当我尝试在模板中访问它 以将其显示在页

随机推荐

  • Pycharm 社区版:“无法显示框架变量”

    每当 Pycharm 在一个使用 Flask 的项目的断点处停止时 我就会在调试窗格 替换变量 中收到此错误 我创建了一个新项目来测试这一点 本项目中断点处显示的变量 但是 由于运行配置中存在不存在的文件而导致异常断点上没有显示它们 有人对
  • 向 Apache PHP 网络服务器发送 iPhone HTTP 请求

    我是一名具有游戏和 3D 图形背景的程序员 目前我想温习我的网络和 Web 开发技能 我有一个想要完成的任务来做到这一点 我的想法是 我希望能够发送 HTTP 请求或类似于我的网络服务器的东西 该服务器运行基于 LAMP 的设置 我想知道如
  • 为什么 require mongo 给我 LoadError: no such file to load -- openssl

    我正在使用 Ubuntu Server 10 Ruby 1 9 2 当我尝试要求 mongo 时 它给了我这个错误 irb main 001 0 gt require mongo LoadError no such file to load
  • 从 python 执行 R 脚本

    我有一个 R 脚本 可以绘制一些图 我希望能够从 python 执行这个脚本 我首先尝试 import subprocess subprocess call plottingfile R shell True 这给了我以下错误 bin sh
  • 任何编程语言中的无理数表示?

    有谁知道无理数表示类型 对象 类 无论什么any编程语言 欢迎所有建议 简而言之 如果我有两个无理对象 都代表 5 的平方根 并且我将这些对象相乘 我想要返回整数 5 而不是浮点数 4 点的 9 具体来说 我需要表示能够收集术语 而不仅仅是
  • 如何记住哪个扩展 ${var%} ${var#} 从哪一端起作用? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我很难记住哪一个参数扩展 var subst or var subst 从绳子的前面取下一个 从后面取下一个 例子 var a b c echo dirname var filename
  • 在不规则网格上绘制和着色数据

    我的数据格式为 x y z 其中 x 和 y 不在常规网格上 我希望显示这些数据的 2D 颜色图 并将强度 例如灰度 映射到 z 变量 一个明显的解决方案是在规则网格上进行插值 见下文 d lt data frame x runif 1e3
  • 概括 NumPy 数组中的切片操作

    这个问题是基于this较旧的问题 给定一个数组 In 122 arr np array 1 3 7 4 9 8 arr Out 122 array 1 3 7 4 9 8 并给出其指数 In 127 np indices arr shape
  • CollapsingToolbarLayout 滚动时不起作用(折叠)

    我正在尝试创建一个CollapsingToolbarLayout在它下面是一个列表视图 当列表视图滚动时 工具栏应该折叠 但是当滚动时工具栏不折叠 它不起作用 使用了这个教程 http android developers blogspot
  • java中jar文件的热交换

    我有两个 jar 文件 其中一个 jar 包含启动进程的 main 方法 其他两个 jar 仅包含类文件 在 One jar 中 我在其清单类路径中引用了 Two jar One jar 包含使用 Class forName 动态加载类的机
  • 最快的 Java HashSet 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 此外这个很旧的帖子 我需要一些能够使用原语并为包含大量内容的应用程序提供加速的东西HashSets of Integers Set
  • 设置 jax-ws 客户端超时

    我在设置 jax ws 超时时遇到问题 我的代码是 WebServiceClient name VoipDBJDBCService targetNamespace http db server voipmeter jextreme eu w
  • Crystal Reports 图像和 ASP.Net MVC

    当我使用使用 CrystalImageHandler aspx 的图表和图像时 我在使用 Crystal Reports 时遇到了问题 图像无法显示 我怀疑这是由于 MVC 路由问题造成的 路径图像路径类似这样 src CrystalIma
  • Symfony2/Twig - 迭代选择选项

    常用显示方式select字段是要调用的 form row form doctor service id attr class form control 我想执行两件事 检查该字段是否实际上是一个选择字段 迭代每个选项 值 名称 我知道该怎样
  • React useState setter 内的更新被调用两次

    我正在尝试更新 useState setter 范围内的内容 这正如我在以下 codepen 示例中所期望的那样 更新状态变量之外的值 但正如我的应用程序中所实现的insideCallCount每人都会被叫两次toggleCell称呼 相关
  • Google 字体无法在 Internet Explorer (IE) 11 中运行

    目前正在使用 Google Fonts 构建一个网站 一切都可以在 IE6 到 10 Firefox Chrome 和移动浏览器上运行 然而 在 IE 11 上 不会加载任何字体 并且所有内容都使用后备字体 无衬线字体等 显示 同样的问题似
  • AngularJS:何时使用服务而不是工厂

    请耐心听我说 我知道还有其他答案 例如 AngularJS 服务 提供商 工厂 但是我仍然不知道你什么时候会使用工厂服务 据我所知 工厂通常用于创建可由多个控制器调用的 通用 函数 创建通用控制器功能 Angular 文档似乎更喜欢工厂而不
  • SQL Server 清除内存

    是否可以从 SQL Server 填充的数据中清除 RAM 内存 有什么程序或选项可以做到这一点吗 您可以使用 CHECKPOINT DBCC DROPCLEANBUFFERS to 从内存中删除所有数据页 测试服务器性能很有用 如果查询所
  • 即使机器人是管理员,Discord JS 管理角色权限也丢失

    我的 Discord 机器人没有向使用该命令的用户添加角色 My Code if userCmd toLowerCase prefix verify if message member roles cache find role gt ro
  • 让 Django 1.7 在 Google App Engine 上运行

    任何人都可以帮助向我们指出如何让 Django gt 1 5 在 Google App Engine 上运行的说明吗 我看到很多人声称他们可以使用 Django 1 6 我们希望运行 1 6 或 1 7 我在这里搜索了有关如何设置的说明 到