2013-01-03 197 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你的教程幫了很多謝謝:) –