Django + Pydev / Eclipse + Google App Engine - возможно? - PullRequest
17 голосов
/ 07 февраля 2009

Кто-нибудь смог заставить Google App Engine / Django работать в Pydev / Eclipse? Я попробовал это, но мне было трудно заставить Pydev распознать все внешние папки (плагины django), на которые я ссылался. В итоге я скопировал все эти папки в проект, а не сделал на них ссылку, в результате чего получилась сильно раздутая папка проекта - это было действительно неосуществимое решение, которое в итоге заставило меня отказаться от всего проекта. Итак, мне интересно, если кто-то пытался это сделать или имеет представление о том, что я мог делать неправильно. (Имейте в виду, что это была моя первая попытка использовать Pydev, Django, App Engine и Python !!)

Ответы [ 8 ]

9 голосов
/ 08 февраля 2009

Я лично не настроил его, но я видел этот урок, как это сделать:

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

5 голосов
/ 16 мая 2009

Pydev 1.4.6 (все еще доступный только в ночных сборках) имеет некоторую специальную поддержку для легкой настройки. Смотри: http://pydev.blogspot.com/2009/05/testing-on-pydev-146-google-app-engine.html

3 голосов
/ 29 ноября 2011

На этот вопрос не было ответа в течение некоторого времени, и все изменилось, поэтому я подумал, что предоставлю и обновлю.

PyDev теперь включает конфигурацию Google App Engine из коробки, и вы можете отлаживать и запускать проекты GAE из коробки, включая Django.

Просто установите GAE и последнюю версию Eclipse / PyDev на своем компьютере, затем создайте проект GAE и укажите PyDev на свои версии Python и Google App Engine.

3 голосов
/ 07 мая 2009

В этом руководстве показано, как настроить Aptana (с установленным PyDev) в качестве платформы для кодирования и отладки для AppEngine. Точно так же вы можете добавить библиотеки Django в Aptana.

http://www.alishabdar.com/2009/05/06/develop-google-appengine-with-aptana-studio/

2 голосов
/ 13 февраля 2010

appengine 1.31
Джанго 1.1
пидев 1.5.4
ОС Ubuntu 9.10


Файл затмения .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>

Файлы:

папка проекта eclipse
- app.yaml
- index.yaml
- init .py
- main.py
- manage.py
- .project
- .pydevproject
- settings.py (невозможно загрузить) - 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', 'elvis@gmail.com'),
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()

пробег затмения:
/usr/bin/python2.6 -u /home/elvis/google_appengine/dev_appserver.py

PYTHONPATH, который будет использоваться:

/ дом / Элвиса / .eclipse / org.eclipse.platform_3.5.0_155965261 / плагины / org.python.pydev_1.5.4.2010011921 / PySrc / pydev_sitecustomize: / Главная / Элвиса / рабочее пространство / pythonleggo: / Главная / Элвиса / google_appengine: / Главная / Элвиса / google_appengine / Библиотека / WebOb: / Главная / Элвиса / google_appengine / Библиотека / YAML / Библиотека: /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- пакеты / 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-ки: /usr/lib/python2.6/plat-linux2: /usr/local/lib/python2.6/dist-packages


Мне не удалось загрузить файл настроек с помощью os.environ ['DJANGO_SETTINGS_MODULE'] = 'settings'. Казалось, что он лишен окружающей среды, которую получил Джанго. Я использовал settings.configure, который, как оказалось, работает правильно. На данный момент у меня есть только загрузка по умолчанию страницы django в appspot.

2 голосов
/ 19 ноября 2009

Я изначально ссылался на этого урока . У Pydev теперь есть поддержка Django, так что это, вероятно, менее актуально. Это все еще может быть полезно для выяснения того, как заставить их всех работать вместе. Вы также можете попробовать посмотреть этот пост .

1 голос
/ 29 марта 2009

Я только начал работать с Python и Google App Engine сегодня. Я думаю, что мы оба ударили головой об одну и ту же стену внешними ссылками.

Я попытался развернуть проект google-app-engine-django для моего приложения. Я распаковал все, и у меня под корнем находятся папки / appengine_django и / django.

Я добавил их в качестве исходных папок и добавил папку / google_appengine / google в качестве внешней ссылки.

Обычно все это имело смысл для меня. Каждый из них содержал модуль __ init __.py. Тем не менее, когда я попытался нажать ctr + на любом из операторов импорта, он не смог найти путь к модулям.

Поразительно, но вы не импортируете непосредственную папку, содержащую __ init __.py. Чтобы правильно ссылаться на пакеты, вы импортируете родительскую папку, содержащую пакет duh! Это также означает, что, поскольку я не хотел использовать папку / src, фактическая папка проекта должна быть добавлена ​​в качестве ссылки на источник чтобы / appengine_django и / django были распознаны как исходные папки.

После этого все идет гладко. Я предполагаю, что это показывает, что я должен больше читать на Py.

0 голосов
/ 12 августа 2014

Вот еще один учебник, который может помочь.
Версия eclispe может быть немного устаревшей, но она должна заставить вас достаточно далеко, чтобы получить рабочий проект.

http://django -appengine.com / содержание

Полностью настроено затмение
http://django -appengine.com / запись / 37462709481 /
http://www.mkyong.com/google-app-engine/google-app-engine-python-hello-world-example-using-eclipse/

У него полная настройка
http://django -appengine.com / запись / 37615321945 /

У него полная настройка django
http://django -appengine.com / запись / 37628665099 /

А потом объясняет, как объединить эти два проекта в один проект.
http://django -appengine.com / запись / 37778427717 /

Надеюсь, это поможет другим, кто только начинает

...