2009-02-07 19 views
17

¿Alguien ha podido hacer que Google App Engine/Django trabaje en Pydev/Eclipse? Intenté esto, pero tuve dificultades para que Pydev reconociera todas las carpetas vinculadas externamente (plugins django) a las que hacía referencia. Terminé copiando todas esas carpetas en el proyecto en masa, en lugar de hacer referencia a ellas, lo que dio como resultado una carpeta de proyecto enormemente inflada: en realidad, fue una solución inviable que finalmente me obligó a renunciar a todo el proyecto. Entonces, me pregunto si alguien ha intentado esto o tiene alguna idea de lo que podría estar haciendo mal. (Tenga en cuenta que esto era mi primer intento de usar PyDev, Django, App Engine y Python !!)Django + Pydev/Eclipse + Google App Engine: ¿es posible?

+1

Así lo acabaste haciendo que al final aquí? Estoy buscando una solución para lo mismo ahora ... –

Respuesta

9

yo no he puesto personalmente para arriba pero vi este tutorial sobre cómo hacerlo:

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

+5

Gracias - sí, ese artículo es relevante para Eclipse/GAE pero no para los detalles de Eclipse/GAE/Django. –

+1

Pydev tiene soporte GAE incorporado: http://stackoverflow.com/questions/523841/django-pydev-eclipse-google-app-engine-possible/872587#872587 – Casebash

1

Acabo de comenzar con Python y Google App Engine hoy. Creo que ambos nos golpeamos la cabeza contra la misma pared con referencias externas.

He intentado implementar el proyecto google-app-engine-django para mi aplicación. Extraje todo y tengo en mi raíz la carpeta/appengine_django y/django.

Los he agregado como carpetas fuente, y he agregado la carpeta/google_appengine/google como referencia externa.

Normalmente, todo esto tiene sentido para mí. Cada uno contenía el módulo __ init __.py. Aún así, cuando intenté ctr + clic en cualquiera de las declaraciones de importación, no pude resolver la ruta a los módulos.

Sorprendentemente, no importa la carpeta inmediata que contiene un __ init __.py. Para referenciar correctamente los paquetes, importe la carpeta principal que contiene el paquete duh! Eso también significa que, como no quería usar una carpeta/src, la carpeta del proyecto real se debe agregar como referencia de origen para que se reconozcan/appengine_django y/django como carpetas de origen.

Con eso hecho, todo está funcionando sin problemas. Supongo que es para mostrar que tengo más lectura para hacer en Py.

2

Originalmente vinculado a this tutorial. Pydev ahora tiene soporte de Django, por lo que probablemente sea menos relevante. Sin embargo, aún puede ser útil para averiguar cómo hacer que todos trabajen juntos. También puedes intentar mirar this blog post.

2

appengine 1,31
Django 1.1
pydev 1.5.4
sistema operativo Ubuntu 9,10


eclipse.pydevproject archivo:

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

Archivos:

carpeta del proyecto Eclipse
- app.yaml
- index.yaml
- init .py
- main.py
- manage.py
- .project
- .pydevproject
- settings.py (no puede cargar) - 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() 

Eclipse de ejecución:
/usr/bin /python2.6 -u /home/elvis/google_appengine/dev_appserver.py

PYTHONPATH que será b E utilizada es:

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


No pude cargar el archivo de configuración con os.environ ['DJANGO_SETTINGS_MODULE'] = 'settings'. Parecía despojado del entorno que recibió django. Utilicé settings.configure que parecía funcionar correctamente. En este punto, solo tengo la página predeterminada de django cargándose en appspot.

+0

¿Por qué está utilizando 2.6? App Engine solo es compatible con 2.5 – Casebash

3

Esta pregunta no ha sido respondida durante un tiempo y las cosas han cambiado, así que pensé en proporcionar y actualizar.

PyDev ahora incluye una configuración de Google App Engine lista para usar y puede depurar y ejecutar proyectos GAE de fábrica, esto incluye a Django.

Simplemente instale GAE y el último Eclipse/PyDev en su máquina, luego cree un proyecto GAE y apunte PyDev a sus versiones de Python y Google App Engine.

0

Aquí hay otro tutorial que podría ayudar.
La versión de eclispe podría ser un poco antigua, pero debería obtener lo suficiente como para obtener un proyecto en funcionamiento.

http://django-appengine.com/contents

que se ha fijado el eclipse total de hasta
http://django-appengine.com/post/37462709481/
http://www.mkyong.com/google-app-engine/google-app-engine-python-hello-world-example-using-eclipse/

que se ha fijado gae completa hasta
http://django-appengine.com/post/37615321945/

que se ha fijado Django completa hasta
http://django-appengine.com/post/37628665099/

Y luego explica cómo combinar esos dos proyectos en un proyecto de gae.
http://django-appengine.com/post/37778427717/

espero que esto ayude a otros que están empezando a cabo