Google App Engine和Django支持

时间:2013-01-03 10:51:03

标签: django google-app-engine pycharm

我正在尝试按照this documentDjango应用部署到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中的那个。

如果我还有其他Django项目应该使用/Library/Python/2.7/site-packages中的Django版本,那么解决这个问题的最佳方法是什么?如果我修改我的PYTHONPATH以包含GAang版本的Django,那么我的所有项目都不会引用那个版本的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应用时遇到了问题。请参阅this separate question

1 个答案:

答案 0 :(得分:11)

看起来syncdb的PyCharms调用正在使用错误的Django安装。 google.appengine.ext.django.backends.rdbms不是官方Django发行版的一部分,但它是GAE 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。那里可能还有一些相关的信息。