【问题标题】:Google App Engine and Django supportGoogle App Engine 和 Django 支持
【发布时间】:2012-12-17 17:26:08
【问题描述】:

我正在尝试按照this document 将我的Django 应用程序部署到Google App Engine (GAE)。如该文档中所述,我创建并配置了一个 Google Cloud SQL 实例。我使用PyCharm 作为开发环境,并创建了一个支持 Django 的 GAE 项目。

我将本地服务器配置为指向 GAE 服务器。当我尝试在 PyCharm 中启动 GAE 本地服务器时,它会在 SETTINGS.PY 中配置不正确的数据库上引发异常:

google.appengine.ext.django.backends.rdbms' isn't an available database backend

我可以从堆栈跟踪中看到本地服务器正在使用 /Library/Python/2.7/site-packages 中的 Django 版本,而我认为它应该使用 /usr/local/google_appengine/lib 中的版本。

考虑到我还有其他应该使用/Library/Python/2.7/site-packages 中的 Django 版本的 Django 项目,解决这个问题的最佳方法是什么?如果我修改我的PYTHONPATH 以包含 Django 的 GAE 版本,我的所有项目不会引用该版本的 Django 吗?

编辑:更准确地说,GAE 本地服务器启动得很好,但是当我执行syncdb 任务来更新我的数据库时,会抛出上述堆栈跟踪。

编辑 2: 在 Python Interpreter 下的 PyCharm 设置中,我发现可以修改路径并添加与 GAE SDK 一起分发的 Django 1.4 版本。当我启动 GAE 开发服务器时,我实际上可以看到它使用 GAE SDK 中的 Django 版本,但它仍然在数据库定义上崩溃:

Error was: No module named google.appengine.ext.django.backends.rdbms.base

编辑 3:我在尝试使用本教程部署现有 Django 应用程序时遇到了问题。见this separate question

【问题讨论】:

  • 你是如何安装 django-appengine 的?最好的方法是使用教程中列出的修改后的 django-nonrel 包
  • @SamueleMattiuzzo:Django 现在已与 GAE SDK 一起预打包。我关注了 Google Developers 的链接文档,该文档于 2012 年 12 月 14 日更新,因此应该反映最近的状态。 Django 的 nonrel 版本针对的是 BigData;文档中描述的版本应该支持关系型的 Google Cloud SQL。
  • 你有本地 MySQL 运行吗?换句话说,当您运行 SDK 时,是否收到此消息“WARNING 2013-01-04 01:58:04,612 rdbms_mysqldb.py:74] The rdbms API is not available because the MySQLdb library could not be loaded.”?
  • @Sologoub:我在运行 SDK 时运行了一个本地 MySQL。您提到的消息没有出现。

标签: django google-app-engine pycharm


【解决方案1】:

看起来syncdb 的 PyCharms 调用使用了错误的 Django 安装。 google.appengine.ext.django.backends.rdbms 不是官方 Django 发行版的一部分,但它是 GAEs django 的一部分。 我的 GAE django 在/usr/local/google_appengine/lib/

如果您使用的是 linux/OS X,您可以将其添加到您的 .bashrc/.bash_profile 并让 syncdb 使用它:

export GAE="/usr/local/google_appengine"
export PYTHONPATH="$PYTHONPATH:$GAE:$GAE/lib/django_1_4"
export PATH=${PATH}:$GAE/lib/django_1_4/django/bin/
export PATH=${PATH}:/usr/local/mysql/bin

我写了一个tutorial about using Django with GAE and Google Cloud SQL。那里可能还有一些相关信息。

【讨论】:

  • 哇,非常感谢,很高兴你喜欢它。如果你能宣传它,我会很高兴;-)
  • @PhilippKeller 你的教程帮助很大,谢谢:)
  • @PhilippKeller:这里也一样!
猜你喜欢
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
  • 2012-10-19
  • 2017-03-24
  • 1970-01-01
相关资源
最近更新 更多