2013-01-03 23 views
5

Próbuję wdrożyć moją aplikację Django do Google App Engine (GAE) zgodnie z this document. Utworzono i skonfigurowałem instancję Google Cloud SQL, zgodnie z opisem w tym dokumencie. Używam PyCharm jako środowiska programistycznego i utworzę projekt GAE z obsługą Django.Google App Engine i obsługa Django

Skonfigurowałem serwer lokalny tak, aby wskazywał serwer GAE. Kiedy próbuję uruchomić lokalny serwer GAE w pycharm, to podniesienie wyjątki dotyczące nieprawidłowo skonfigurowana baza danych w SETTINGS.PY:

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

mogę zobaczyć od śladu stosu, że lokalny serwer używa wersji Django w /Library/Python/2.7/site-packages a ja przypuszczam, że powinien on użyć tego w /usr/local/google_appengine/lib.

Jaki byłby najlepszy sposób rozwiązania tego problemu, biorąc pod uwagę, że mam również inne projekty Django, które powinny używać wersji Django w wersji /Library/Python/2.7/site-packages? Jeśli zmodyfikuję mój PYTHONPATH tak, aby zawierał wersję Django GAE, czy nie wszystkie moje projekty odwoływałyby się do tej wersji Django?

EDIT: Aby być bardziej precyzyjnym, lokalny serwer GAE zaczyna dobrze, ale rzuca wspomniany ślad stosu, gdy robię syncdb zadanie zaktualizować bazę danych.

EDIT 2: w Settings pycharm pod Pythona interpretera, to okazało się, że istnieje możliwość zmiany ścieżek i dodaje Django wersji 1.4 jak rozprowadzane GAE SDK. Kiedy uruchomić serwer rozwoju GAE, mogę rzeczywiście zobaczyć używa wersji Django z GAE SDK ale wciąż rozbija się na definicji bazy danych:

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

EDIT 3: wpadłem na problemy podczas próby wdrożyć istniejąca aplikacja Django korzystająca z samouczka. Zobacz this separate question.

+0

Jak zainstalowałeś django-appengine? Najlepszym sposobem jest użycie zmodyfikowanego pakietu django-nonrel wymienionego w tutorialach. –

+0

@SamueleMattiuzzo: Django jest teraz wstępnie opakowany z GAE SDK. Postępowałem zgodnie z połączonym dokumentem od Google Developers, który został zaktualizowany 14 grudnia 2012 r., Więc powinien odzwierciedlać aktualny stan. Wersja nonna Django była skierowana na BigData; wersja opisana w dokumencie powinna obsługiwać Google Cloud SQL, który jest relacyjny. – Roger

+0

Czy masz uruchomiony lokalny MySQL? Innymi słowy, po uruchomieniu pakietu SDK pojawia się komunikat "OSTRZEŻENIE 2013-01-04 01: 58: 04,612 rdbms_mysqldb.py:74] Interfejs API rdbms jest niedostępny, ponieważ nie można załadować biblioteki MySQLdb."? – Sologoub

Odpowiedz

11

Wygląda na to, że wywołanie PyCharms z syncdb używa niewłaściwej instalacji Django. google.appengine.ext.django.backends.rdbms nie jest częścią oficjalnej dystrybucji Django, ale jest częścią django GAE. Moja GAE Django jest w /usr/local/google_appengine/lib/

Jeśli jesteś na Linux/Mac OS X można dodać do swojej .bashrc/.bash_profile i uczynić syncdb użyj:

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 

Napisałem tutorial about using Django with GAE and Google Cloud SQL. Tam też mogą być jakieś istotne informacje.

+2

Ten samouczek jest BARDZO dobry! – Roger

+0

Wow, wielkie dzięki, cieszę się, że Ci się podoba.Byłbym szczęśliwy, gdybyś mógł o tym opowiedzieć ;-) – hansaplast

+1

@PhilippKeller Twój tutorial bardzo pomógł ci :) –