2009-02-07 16 views
17

Czy ktoś był w stanie uruchomić Google App Engine/Django w Pydev/Eclipse? Próbowałem tego, ale miałem trudności z tym, aby Pydev rozpoznał wszystkie zewnętrzne foldery (wtyczki django), do których się odwoływałem. W efekcie skopiowałem wszystkie foldery do projektu masowo, zamiast odnieść się do nich, co spowodowało ogromny rozdęty folder projektu - było to naprawdę niewykonalne rozwiązanie, które ostatecznie spowodowało, że zrezygnowałem z całego projektu. Zastanawiam się więc, czy ktoś próbował tego, czy nie ma pojęcia, co robiłem źle. (Pamiętaj, to była moja pierwsza próba przy użyciu PyDev, Django, App Engine i Python !!)Django + Pydev/Eclipse + Google App Engine - możliwe?

+1

Więc co pan kończy się robi w końcu tutaj? Szukam rozwiązania tego samego teraz ... –

Odpowiedz

9

nie mam osobiście ustawić go ale widziałem ten tutorial jak to zrobić:

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

+5

Dzięki - tak, ten artykuł dotyczy Eclipse/GAE, ale nie dotyczy szczegółów Eclipse/GAE/Django. –

+1

Pydev ma wbudowaną obsługę GAE: http://stackoverflow.com/questions/523841/django-pydev-eclipse-google-app-engine-possible/872587 #872587 – Casebash

1

Zacząłem już dziś od Pythona i Google App Engine. Myślę, że obaj uderzyliśmy głowami o tę samą ścianę z zewnętrznymi odnośnikami.

Próbowałem wdrożyć projekt google-app-engine-django dla mojej aplikacji. Wyodrębniłem wszystko i mam pod swoim folderem głównym katalog/appengine_django i/django.

Dodałem je jako foldery źródłowe, a folder external go/google_appengine/google został dodany jako zewnętrzny odnośnik.

Normalnie wszystko to miało dla mnie sens. Każda zawierała moduł __ init __.py. Mimo to, gdy spróbowałem ctr + kliknąć dowolną instrukcję importu, nie udało się rozwiązać ścieżki do modułów.

Uderzająco nie importujesz bezpośredniego folderu zawierającego __ init __.py. Aby poprawnie odwoływać się do pakietów, importujesz folder nadrzędny zawierający pakiet ! Oznacza to również, że ponieważ nie chciałem używać folderu/src, rzeczywisty folder projektu powinien zostać dodany jako odniesienie do źródła, aby katalogi/appengine_django i/django zostały rozpoznane jako foldery źródłowe.

Po tym wszystkim wszystko przebiega sprawnie. Myślę, że to pokazuje, że mam więcej do zrobienia w Py.

2

Pierwotnie połączono z this tutorial. Pydev ma teraz obsługę Django, więc jest to prawdopodobnie mniej istotne. Mimo to może się przydać, aby dowiedzieć się, jak sprawić, by wszystkie one działały razem. Możesz również spróbować spojrzeć na this blog post.

2

AppEngine 1,31
Django 1,1
PyDev 1.5.4
OS Ubuntu 9,10


Eclipse.pydevproject file:

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

Pliki:

folderze projektu Eclipse
- app.yaml
- index.yaml
- startowych .py
- main.py
- manage.py
- .projekt
- .pydevproject
- settings.py (w stanie załadować) - 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() 

zaćmienie bieg:
/usr/bin /python2.6 -u /home/elvis/google_appengine/dev_appserver.py

PYTHONPATH, który będzie e stosowany jest:

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


Nie można pobrać pliku ustawień do załadowania za pomocą os.environ ['DJANGO_SETTINGS_MODULE'] = 'settings'. Wygląda na to, że został pozbawiony środowiska, które otrzymał django. Użyłem settings.configure, który wydawał się działać poprawnie. W tym momencie mam tylko domyślną stronę ładowania django w appspot.

+0

Dlaczego używasz 2.6? App Engine obsługuje tylko 2,5 – Casebash

3

To pytanie nie było odpowiedzią na jakiś czas, a rzeczy się zmieniły, więc pomyślałem, że dostarczę i zaktualizuję.

PyDev teraz zawiera teraz konfigurację Google App Engine i możesz od razu debugować i uruchamiać projekty GAE, w tym Django.

Po prostu zainstaluj GAE i najnowszą wersję Eclipse/PyDev na swoim komputerze, a następnie utwórz projekt GAE i wskaż PyDev w swoich wersjach Pythona i Google App Engine.

0

Oto inny samouczek, który może pomóc.
Wersja eclispe może być nieco stara, ale powinna dać Ci wystarczająco daleko, aby uzyskać działający projekt.

http://django-appengine.com/contents

To kompletne zaćmienie skonfigurować
http://django-appengine.com/post/37462709481/
http://www.mkyong.com/google-app-engine/google-app-engine-python-hello-world-example-using-eclipse/

To kompletna GAE skonfigurować
http://django-appengine.com/post/37615321945/

To kompletna Django skonfigurować
http://django-appengine.com/post/37628665099/

A następnie wyjaśnia, jak połączyć te dwa projekty w jeden projekt gae.
http://django-appengine.com/post/37778427717/

Mam nadzieję, że to pomoże innym, którzy dopiero zaczynają