У меня есть приложение Python 2.7 GAE, которое использует Django 1.2. Все работает нормально.GAE: remote_api_shell.py использует неправильную версию Django
Я пытаюсь использовать remote_api_shell.py
, но когда я импортировать мой models.py
, я получаю эту ошибку:
$ PYTHONPATH=.; remote_api_shell.py APP
App Engine remote_api shell
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
The db, users, urlfetch, and memcache modules are imported.
s~APP> import models
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/.../models.py", line 8, in <module>
from django.core.validators import email_re
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_0_96/django/core/validators.py", line 13, in <module>
from django.utils.translation import gettext, gettext_lazy, ngettext
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_0_96/django/utils/translation/__init__.py", line 3, in <module>
if settings.USE_I18N:
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_0_96/django/conf/__init__.py", line 28, in __getattr__
self._import_settings()
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_0_96/django/conf/__init__.py", line 53, in _import_settings
raise EnvironmentError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE
EnvironmentError: Environment variable DJANGO_SETTINGS_MODULE is undefined.
Я не знаю, почему он использует Django 0.96 здесь. Тем более, что я думаю, что Python 2.7 поддерживает только Django 1.2. Вот соответствующие части моего app.yaml
:
application: APP
version: prod
runtime: python27
api_version: 1
threadsafe: true
[...]
libraries:
- name: django
version: "1.2"
Если я закомментируйте from django.core.validators import email_re
линию, то импорт успешно.
Любая идея, если я делаю что-то неправильно или это ошибка GAE?
Это лучший рубить, чем мой! –
Я нахожу, что дополнительно нужно установить мои настройки Env путь и делать какое-либо дополнение к пути питона, что я бы в противном случае сделать в моем main.py 'импорт SYS, зева ... os.environ [«DJANGO_SETTINGS_MODULE» ] = 'settings' sys.path.append (os.path.join (os.path.dirname (__ file__), 'libs')) ' –
Вы можете установить DJANGO_SETTINGS_MODULE в app.yaml для упрощения. И мне никогда не нужно обновлять путь, не уверен, зачем вам это нужно. Убедитесь, что у вас есть файл __init__.py в каталоге lib. –