首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django_settings_module在GAE服务器上未定义

django_settings_module在GAE服务器上未定义
EN

Stack Overflow用户
提问于 2012-12-11 23:36:21
回答 1查看 1.3K关注 0票数 3

所以,我知道你们被问过无数次这个问题,相信我,我想我已经读过了。当我试图使用google将Django民意调查应用程序(在django教程中制作的应用程序)转换为运行在google上的DJANGO_SETTINGS_MODULE应用程序时,我得到了一个未定义的错误。

下面是google应用程序引擎日志给我的实际堆栈跟踪:

代码语言:javascript
复制
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.

当我试图在google应用引擎提供的dev_appserver.py上运行它时,我也遇到了同样的错误,但是通过添加

代码语言:javascript
复制
  env_variables:
    DJANGO_SETTINGS_MODULE: 'DjangoTut.settings'

到app.yaml文件。

我的项目目录如下所示:

  • DjangoTut
    • DjangoTut
      • init.py
      • settings.py
      • urls.py
      • wsgi.py

代码语言:javascript
复制
- polls 
    - **init**.py
    - admin.py
    - models.py
    - tests.py
    - urls.py
    - views.py

代码语言:javascript
复制
- app.yaml
- manage.py

我的app.yaml文件看起来像这样

代码语言:javascript
复制
   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/

我试过添加

代码语言:javascript
复制
    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,但是,每当我试图在谷歌服务器上运行它时,我仍然会遇到相同的错误。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2012-12-12 00:46:25

你在用Django-nonrel吗?如果没有,请看一下这个[机]发动机分度

我会尝试将settings.py移到与app.yaml相同的目录中。将env_variables从app.yaml中移除,您不应该需要这些才能使其工作。但是,如果尚未定义处理程序(不确定是否列出了整个app.yaml ),则需要定义处理程序:

代码语言:javascript
复制
  handlers:
- url: /static
  static_dir: static

- url: /.*
  script: main.py

环境设置应该在您设置的wsgi处理程序中(本例中为main.py),如上面的谷歌文章所示。

代码语言:javascript
复制
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

希望这能让你走上正确的道路。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13830335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档