2013-01-03 199 views
5

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

我配置了一个本地服务器来指向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以包含GAO版本的Django,那么我的所有项目是不是会引用该版本的Django?

编辑:更确切地说,在GAE本地服务器启动就好了,但是当我做了syncdb任务来更新我的数据库抛出提到的堆栈跟踪。

编辑2:在根据Python解释PyCharm设置,我发现修改的路径的可能性,并且增加了的Django 1.4版本与GAE SDK分布。当我开始在GAE开发服务器,我可以清楚地看到它使用来自GAE SDK Django的版本,但它仍然崩溃的数据库定义:尝试部署时我遇到了问题:

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

编辑3使用教程的现有Django应用程序。见this separate question

+0

你是怎么安装django-appengine的?最好的方法是使用教程 –

+0

@SamueleMattiuzzo中列出的修改过的django-nonrel包:Django现在预包装GAE SDK。我跟踪了2012年12月14日更新的Google Developers链接文档,因此应反映最近的状态。 Django的nonrel版本是针对BigData的;该文档中描述的版本应支持关系型Google云SQL。 – Roger

+0

你有本地MySQL运行吗?换句话说,当您运行SDK时,是否收到此消息“WARNING 2013-01-04 01:58:04,612 rdbms_mysqldb.py:74] rdbms API不可用,因为无法加载MySQLdb库。”? – Sologoub

回答

11

看起来像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 

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

+2

该教程非常好! – Roger

+0

哇,非常感谢,很高兴你喜欢它。我会很高兴,如果你能传播有关它的话;-) – hansaplast

+1

@PhilippKeller你的教程帮了很多谢谢:) –