所以,我知道你们已经被问过这个问题一百万次了,相信我,我想我已经阅读了所有这些问题。尝试将 Django polls 应用程序(在 django 教程中制作的应用程序)转换为使用谷歌云 SQL 在谷歌应用程序引擎上运行时,我收到 DJANGO_SETTINGS_MODULE is undefined 错误。
这是谷歌应用引擎日志给我的实际堆栈跟踪:
Traceback (most recent call last):
File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 223, in Handle
result = handler(dict(self._environ), self._StartResponse)
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/wsgi.py", line 219, in __call__
self.load_middleware()
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py", line 39, in load_middleware
for middleware_path in settings.MIDDLEWARE_CLASSES:
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/utils/functional.py", line 184, in inner
self._setup()
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
我在尝试在谷歌应用引擎提供的 dev_appserver.py 上运行它时遇到了同样的错误,但设法通过添加来解决这个问题
env_variables:
DJANGO_SETTINGS_MODULE: 'DjangoTut.settings'
到 app.yaml 文件。
我的项目目录如下所示:
- DjangoTut
- DjangoTut
- 初始化.py
- 设置.py
- 网址.py
- wsgi.py
- 民意调查
- 初始化.py
- 管理员.py
- 模型.py
- 测试.py
- 网址.py
- 视图.py
- 应用程序.yaml
- 管理.py
- DjangoTut
我的 app.yaml 文件看起来像这样
application: hochotime
version: 10
runtime: python27
api_version: 1
threadsafe: true
libraries:
- name: django
version: "1.4"
builtins:
- django_wsgi: on
env_variables:
DJANGO_SETTINGS_MODULE: 'settings'
其他所有文件都与此处建议的文件相同https://docs.djangoproject.com/en/1.4/intro/tutorial01/
我试过添加
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'DjangoTut.settings'
几乎每个 python 文件的开头,但无济于事。我尝试将设置文件移动到项目目录而不是应用程序目录中,并将所有的os.environ['DJANGO_SETTINGS_MODULE']
指向都更改为“设置”。我也尝试过直接配置设置,如此处所示https://docs.djangoproject.com/en/dev/topics/settings/#using-settings-without-setting-django-settings-module但我还是一样每当我尝试在谷歌服务器上运行它时都会出错。
任何帮助将不胜感激。