2013-01-03 24 views
5

Sto provando a distribuire l'app Django su Google App Engine (GAE) come da this document. Ho creato e configurato un'istanza Google Cloud SQL, come descritto in quel documento. Io uso PyCharm come ambiente di sviluppo e ho creato un progetto GAE con il supporto Django.Google App Engine e supporto Django

Ho configurato un server locale per puntare al server GAE. Quando provo a lanciare il server locale GAE in PyCharm, è sollevare eccezioni in un database non configurato correttamente in SETTINGS.PY:

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

posso vedere dalla analisi dello stack che il server locale sta usando la versione Django in /Library/Python/2.7/site-packages mentre io presume che dovrebbe usare quello in /usr/local/google_appengine/lib.

Quale sarebbe il modo migliore per risolvere questo dato che ho altri progetti Django che dovrebbero utilizzare la versione di Django in /Library/Python/2.7/site-packages? Se modifico il mio PYTHONPATH per includere la versione GAE di Django, non tutti i miei progetti faranno riferimento a quella versione di Django?

MODIFICA: Per essere più precisi, il server locale GAE si avvia correttamente ma getta la traccia di stack menzionata quando eseguo un'attività syncdb per aggiornare il mio database.

EDIT 2: Nelle impostazioni PyCharm con Python Interpreter, ho trovato la possibilità di modificare i percorsi e ho aggiunto la versione di Django 1.4 come distribuita con GAE SDK. Quando avvio il server di sviluppo GAE, posso effettivamente vedere utilizza la versione Django dalla GAE SDK, ma si blocca ancora sulle definizioni di database:

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

EDIT 3: mi sono imbattuto in problemi quando si cerca di distribuire un'app di Django esistente usando il tutorial. Vedi this separate question.

+0

come hai installato django-appengine? il modo migliore è usare il pacchetto modificato django-nonrel elencato nelle esercitazioni –

+0

@SamueleMattiuzzo: Django è ora preconfezionato con GAE SDK. Ho seguito il documento collegato di Google Developers che è stato aggiornato il 14 dicembre 2012, quindi dovrebbe riflettere lo stato recente. La versione nonrelata di Django era destinata a BigData; la versione descritta nel documento dovrebbe supportare Google Cloud SQL che è relazionale. – Roger

+0

Hai un MySQL locale in esecuzione? In altre parole, quando si esegue l'SDK, viene visualizzato questo messaggio "ATTENZIONE 2013-01-04 01: 58: 04,612 rdbms_mysqldb.py:74] L'API rdbms non è disponibile perché la libreria MySQLdb non può essere caricata."? – Sologoub

risposta

11

Sembra che la chiamata PyCharms di syncdb stia utilizzando l'installazione Django errata. google.appengine.ext.django.backends.rdbms non fa parte della distribuzione ufficiale di Django, ma fa parte del GAJ django. mio GAE Django è in /usr/local/google_appengine/lib/

Se siete su Linux/OS X è possibile aggiungere questo al tuo .bashrc/.bash_profile e rendere syncdb utilizzare questo:

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 

ho scritto un tutorial about using Django with GAE and Google Cloud SQL. Potrebbero esserci anche alcune informazioni rilevanti.

+2

Quel tutorial è MOLTO buono! – Roger

+0

wow, grazie mille, felice che ti piaccia.Sarei felice se potessi dirlo a tutti ;-) – hansaplast

+1

@PhilippKeller il tuo tutorial ti ha aiutato molto :) –