【发布时间】: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