6

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

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

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

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

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

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

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

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

编辑 3:我在尝试使用本教程部署现有的 Django 应用程序时遇到了问题。请参阅这个单独的问题

4

1 回答 1

12

看起来 PyCharms 调用syncdb使用了错误的 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

我写了一篇关于将 Django 与 GAE 和 Google Cloud SQL 结合使用的教程。那里可能还有一些相关信息。

于 2013-01-05T10:34:00.250 回答