2009-02-07 12 views
17

Kann jemand Google App Engine/Django in Pydev/Eclipse verwenden? Ich habe das versucht, hatte aber Schwierigkeiten, Pydev dazu zu bringen, alle extern verlinkten Ordner (django plugins) zu erkennen, auf die ich mich bezog. Ich habe schließlich alle diese Ordner massenweise in das Projekt kopiert, anstatt sie zu referenzieren, was zu einem massiv aufgeblähten Projektordner führte - es war wirklich eine undurchführbare Lösung, die mich schließlich dazu brachte, das ganze Projekt aufzugeben. Ich frage mich, ob jemand das versucht hat oder eine Ahnung hat, was ich falsch gemacht habe. (Denken Sie daran, dies war mein erster Versuch mit Pydev, Django, App Engine und Python !!)Django + Pydev/Eclipse + Google App Engine - möglich?

+1

Also, was hast du hier am Ende am Ende tun hilft? Ich suche jetzt nach einer Lösung für die gleiche Sache ... –

Antwort

9

Ich persönlich habe es nicht eingerichtet, aber ich habe dieses Tutorial sehen, wie man es tun:

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

+5

Danke - ja, dieser Artikel ist relevant für Eclipse/GAE, aber nicht für die Einzelheiten von Eclipse/GAE/Django. –

+1

Pydev hat eingebaute GAE-Unterstützung: http://StackOverflow.com/questions/523841/django-pydev-eclipse-google-App-Ge%C3%A4nde-Modell/872587#872587 – Casebash

1

Ich habe gerade mit Python und der Google App Engine begonnen. Ich denke, wir haben beide mit externen Referenzen gegen die gleiche Wand gekämpft.

Ich habe versucht, das Projekt google-app-engine-django für meine App bereitzustellen. Ich habe alles extrahiert und habe unter meiner Wurzel den Ordner/appengine_django und/django.

Ich habe sie als Quellordner hinzugefügt, und ich habe den Ordner/google_appengine/google als externe Referenz hinzugefügt.

Normalerweise machte das alles Sinn für mich. Jeder enthielt das __ init __.py-Modul. Trotzdem, als ich versuchte, auf irgendeine der Import-Anweisungen zu klicken, konnte der Pfad zu den Modulen nicht aufgelöst werden.

Auffällig, importieren Sie nicht den unmittelbaren Ordner, der eine __ init __.py enthält. Um Pakete korrekt zu referenzieren, importieren Sie den übergeordneten Ordner, der das Paket enthält duh! Das bedeutet auch, dass, da ich keinen/src-Ordner verwenden wollte, der eigentliche Projektordner als Quellreferenz hinzugefügt werden sollte, damit/appengine_django und/django als Quellordner erkannt werden.

Damit ist alles in Ordnung. Ich schätze, es ist zu zeigen, dass ich mehr über Py lese.

2

Ich ursprünglich verknüpft mit this tutorial. Pydev hat jetzt Django-Unterstützung, das ist wahrscheinlich weniger relevant. Es kann jedoch nützlich sein, herauszufinden, wie sie alle zusammenarbeiten können. Sie können auch versuchen, this blog post betrachten.

2

appengine 1,31
Django 1.1
pydev 1.5.4
OS 9.10 Ubuntu


Sonnenfinsternis.pydevproject Datei:

<?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> 

Dateien:

Eclipse Projektordner
- app.yaml
- index.yaml
- init Py
- main.py
- manage.py
- .project
- .pydevproject
- settings.py (nicht geladen) - 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() 

Eklipse Run:
/usr/bin /python2.6 -u /home/elvis/google_appengine/dev_appserver.py

Der PYTHONPATH, der b e verwendet wird:

/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 .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/de/dist-packages/gtk-2.0: /usr/lib/python2.6/lib-dynload: /usr/lib/python2.6/ lib-alt: /usr/lib/python2.6/lib-tk: /usr/lib/python2.6/plat-linux2: /usr/local/lib/python2.6/dist-packages


Ich konnte die Einstellungsdatei nicht mit os.environ ['DJANGO_SETTINGS_MODULE'] = 'settings' laden. Es schien der Umwelt entkleidet zu sein, die der Django empfing. Ich habe settings.configure verwendet, das richtig zu funktionieren schien. Zu diesem Zeitpunkt habe ich nur die Standard-Django-Seite geladen in Appspot.

+0

Warum verwenden Sie 2.6? App Engine unterstützt nur 2,5 – Casebash

3

Diese Frage wurde seit einiger Zeit nicht beantwortet und die Dinge haben sich geändert, also dachte ich, ich würde zur Verfügung stellen und aktualisieren.

PyDev enthält jetzt standardmäßig eine Google App Engine-Konfiguration und Sie können GAE-Projekte sofort debuggen und ausführen, einschließlich Django.

Installieren Sie einfach GAE und das neueste Eclipse/PyDev auf Ihrem Computer, erstellen Sie dann ein GAE-Projekt und zeigen Sie PyDev auf Ihre Versionen von Python und Google App Engine.

0

Hier ist ein anderes Tutorial, das helfen könnte.
Die eclispe-Version könnte ein bisschen alt sein, aber es sollte Sie weit genug bringen, um ein funktionierendes Projekt zu bekommen.

http://django-appengine.com/contents

Es hat vollständige Eclipse einrichten
http://django-appengine.com/post/37462709481/
http://www.mkyong.com/google-app-engine/google-app-engine-python-hello-world-example-using-eclipse/

Es wurde komplett gae einrichten
http://django-appengine.com/post/37615321945/

Es wurde komplett django einrichten
http://django-appengine.com/post/37628665099/

Und dann erklärt, wie diese beiden Projekte in einem gae-Projekt zu kombinieren.
http://django-appengine.com/post/37778427717/

Ich hoffe, das andere, die gerade erst anfangen