импортировать настройки django в app-engine-patch - PullRequest
2 голосов
/ 27 августа 2010

У меня проблема с настройками Django. Мое приложение работает с app-engine-patch. Я добавил скрипт, который работает без django и доступен напрямую через обработчики app.yaml. Я тогда получаю эту ошибку:

File "/base/python_runtime/python_lib/versions/third_party/django-0.96/django/conf/__init__.py", line 53, in _import_settings
raise EnvironmentError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE
<type 'exceptions.EnvironmentError'>: Environment variable DJANGO_SETTINGS_MODULE is undefined.

Я нашел этот совет в Google:

# Force Django to reload its settings.
from django.conf import settings
settings._target = None

# Must set this env var before importing any part of Django
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

Но тогда я получил эту ошибку:

raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
<type 'exceptions.EnvironmentError'>: Could not import settings 'settings.py' (Is it on sys.path? Does it have syntax errors?): No module named ragendja.settings_pre

Я думаю, что это проблема с модификацией путей app-engine-patch, как мне правильно импортировать settings_pre?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 27 августа 2010

Изменить

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings.py' 

на

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

Значение DJANGO_SETTINGS_MODULE - это имя модуля (то есть, как вы бы написали его в операторе importв скрипте Python), а не путь к модулю.

0 голосов
/ 01 сентября 2010

Благодаря другому вопросу я заменил биннинг на:

from common.appenginepatch.aecmd import setup_env 
setup_env(manage_py_env=True)

Это импортирует все настройки, и моя задача может выполняться без ссылки на Django

...