2009-02-07 22 views
17

Qualcuno è riuscito a far funzionare Google App Engine/Django in Pydev/Eclipse? Ho provato questo, ma ho avuto difficoltà a convincere Pydev a riconoscere tutte le cartelle collegate esternamente (plugin django) a cui facevo riferimento. Alla fine ho copiato tutte queste cartelle nel progetto, piuttosto che farle riferimento, creando una cartella di progetto enormemente gonfia - era davvero una soluzione impraticabile che alla fine mi ha costretto a rinunciare all'intero progetto. Quindi, mi chiedo se qualcuno ha provato questo o ha qualche idea di quello che potrei aver fatto di sbagliato. (Tenete a mente questo era il mio primo tentativo di utilizzare Pydev, Django, App Engine e Python !!)Django + Pydev/Eclipse + Google App Engine - possibile?

+1

Allora, cosa si finisce per fare, alla fine qui? Sto cercando una soluzione alla stessa ora ... –

risposta

9

non l'ho impostato personalmente in su, ma ho fatto vedere questo tutorial su come farlo:

http://code.google.com/appengine/articles/eclipse.html

+5

Grazie - sì, quell'articolo è rilevante per Eclipse/GAE ma non per i dettagli di Eclipse/GAE/Django. –

+1

Pydev ha il supporto GAE integrato: http://stackoverflow.com/questions/523841/django-pydev-eclipse-google-app-engine-possible/872587#872587 – Casebash

1

Ho appena iniziato con Python e Google App Engine oggi. Penso che entrambi abbiamo sbattuto la testa contro lo stesso muro con riferimenti esterni.

Ho provato a distribuire il progetto google-app-engine-django per la mia app. Ho estratto tutto e ho messo sotto la cartella/appengine_django e/django.

Li ho aggiunti come cartelle di origine e ho aggiunto la cartella/google_appengine/google come riferimento esterno.

Normalmente, tutto ciò aveva senso per me. Ciascuno conteneva il modulo __ init __.py. Tuttavia, quando ho provato a ctr + fare clic su una delle istruzioni di importazione, non è stato possibile risolvere il percorso dei moduli.

Sorprendentemente, non si importa la cartella immediata che contiene __ init __.py. Per fare riferimento correttamente ai pacchetti, importa la cartella principale che contiene il pacchetto duh! Ciò significa anche che, poiché non volevo usare una cartella/src, la cartella del progetto reale dovrebbe essere aggiunta come riferimento di origine per far sì che/appengine_django e/django vengano riconosciuti come cartelle di origine.

Fatto ciò, tutto procede senza intoppi. Immagino sia per mostrare che ho più cose da leggere su Py.

2

Originariamente collegato a this tutorial. Pydev ora ha il supporto per Django, quindi questo è probabilmente meno rilevante. Potrebbe essere ancora utile per capire come farli funzionare tutti insieme però. Puoi anche provare a guardare this blog post.

2

appengine 1.31
Django 1.1
pydev 1.5.4
OS Ubuntu 9,10


eclissi.File pydevproject:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<?eclipse-pydev version="1.0"?> 
<pydev_project> 
<pydev_variables_property name="org.python.pydev.PROJECT_VARIABLE_SUBSTITUTION"> 
<key>GOOGLE_APP_ENGINE</key> 
<value>/home/elvis/google_appengine</value> 
</pydev_variables_property> 
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH"> 
<path>/pythonleggo</path> 
</pydev_pathproperty> 
<pydev_pathproperty name="org.python.pydev.PROJECT_EXTERNAL_SOURCE_PATH"> 
<path>${GOOGLE_APP_ENGINE}</path> 
<path>${GOOGLE_APP_ENGINE}/lib/webob</path> 
<path>${GOOGLE_APP_ENGINE}/lib/yaml/lib</path> 
</pydev_pathproperty> 
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property> 
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property> 
</pydev_project> 

Files:

cartella del progetto Eclipse
- app.yaml
- index.yaml
- init .py
- main.py
- manage.py
- .project
- .pydevproject
- settings.py (in grado di caricare) - urls.py


main.py:

from google.appengine.dist import use_library 
use_library('django', '1.1') 

from django.conf import settings 

settings.configure(
DEBUG=True, 
TEMPLATE_DEBUG=True, 
ROOT_URLCONF = 'urls', 
PROJECT_NAME = 'pythonleggo', 
SETTINGS_MODULE = '.settings', 
ADMINS = ('elvis', '[email protected]'), 
LANGUAGE_CODE = 'en-us', 
SITE_ID = 1, 
USE_I18N = True, 
MEDIA_ROOT = '', 
MEDIA_URL = '', 
ADMIN_MEDIA_PREFIX = '/media/', 
SECRET_KEY = 'shhh', 
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source', 
    'django.template.loaders.app_directories.load_template_source'), 
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware'), 

TEMPLATE_DIRS=('/home/jmurphy/workspace/pythonleggo/templates'), 
INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites') 
) 

#os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

import django.core.handlers.wsgi 
from google.appengine.ext.webapp import util 

def main(): 
    # Run Django via WSGI. 
    application = django.core.handlers.wsgi.WSGIHandler() 
    util.run_wsgi_app(application) 
if __name__ == ' __main__': 
    main() 

eclissi run:
/usr/bin /python2.6 -u /home/elvis/google_appengine/dev_appserver.py

Il PYTHONPATH che b e utilizzato è:

/home/elvis/.eclipse/org.eclipse.platform_3.5.0_155965261/plugins/org.python.pydev_1.5.4.2010011921/PySrc/pydev_sitecustomize:/home/elvis/workspace/pythonleggo: /home/elvis/google_appengine:/home/elvis/google_appengine/lib/webob:/home/elvis/google_appengine/lib/yaml/lib:/usr/lib/pymodules/python2.6:/usr/lib/pymodules/python2 0,6/gtk-2.0: /usr/lib/python2.6: /usr/lib/python2.6/dist-packages: /usr/lib/python2.6/dist-packages/PIL:/usr/lib/python2 .6/dist-packages/GST-0.10: /usr/lib/python2.6/dist-packages/gtk-2.0: /usr/lib/python2.6/lib-dynload: /usr/lib/python2.6/ lib-old: /usr/lib/python2.6/lib-tk: /usr/lib/python2.6/plat-linux2: /usr/local/lib/python2.6/dist-packages


Non è stato possibile caricare il file delle impostazioni utilizzando os.environ ['DJANGO_SETTINGS_MODULE'] = 'impostazioni'. Sembrava essere stato privato dall'ambiente che il django aveva ricevuto. Ho usato settings.configure che sembrava funzionare correttamente. A questo punto ho solo il caricamento predefinito della pagina django in appspot.

+0

Perché stai usando 2.6? App Engine supporta solo 2.5 – Casebash

3

Questa domanda non è stata risolta per qualche tempo e le cose sono cambiate, quindi ho pensato di fornire e aggiornare.

PyDev ora include una configurazione di Google App Engine e può eseguire il debug ed eseguire i progetti GAE immediatamente, incluso Django.

Basta installare GAE e l'ultimo Eclipse/PyDev sul computer, quindi creare un progetto GAE e puntare PyDev alle versioni di Python e Google App Engine.

0

Ecco un altro tutorial che potrebbe essere d'aiuto.
La versione eclispe potrebbe essere un po 'vecchia ma dovrebbe portarti a abbastanza lontano da ottenere un progetto funzionante.

http://django-appengine.com/contents

Ha impostato completa eclissi fino
http://django-appengine.com/post/37462709481/
http://www.mkyong.com/google-app-engine/google-app-engine-python-hello-world-example-using-eclipse/

Ha set completo gae up
http://django-appengine.com/post/37615321945/

Ha set completo Django fino
http://django-appengine.com/post/37628665099/

E poi spiega come combinare questi due progetti in un progetto gae.
http://django-appengine.com/post/37778427717/

Spero che questo aiuta gli altri che sono appena agli inizi