gpt4 book ai didi

python - django_settings_module 在 GAE 服务器上未定义

转载 作者:行者123 更新时间:2023-11-28 18:50:22 25 4
gpt4 key购买 nike

所以,我知道你们已经被问过这个问题一百万次了,相信我,我想我已经读完了所有这些问题。尝试将 Django 投票应用程序(在 django 教程中制作的应用程序)转换为使用谷歌云 SQL 在谷歌应用程序引擎上运行时,出现 DJANGO_SETTINGS_MODULE 未定义错误。

这是谷歌应用引擎日志给我的实际堆栈跟踪:

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
      • urls.py
      • wsgi.py
    • 投票
      • 初始化.py
      • admin.py
      • 模型.py
      • 测试.py
      • urls.py
      • views.py
    • 应用.yaml
    • 管理.py

我的 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但是,每当我尝试在谷歌服务器上运行它时,我仍然会遇到同样的错误。

如有任何帮助,我们将不胜感激。

最佳答案

你在使用 Django-nonrel ?如果没有,看看这个 appengine ariticle .

我会尝试将 settings.py 移到与 app.yaml 相同的目录中。从 app.yaml 中删除 env_variables,你不需要这些就可以工作。但是,如果您还没有定义处理程序,则需要定义处理程序(不确定您是否列出了整个 app.yaml):

  handlers:
- url: /static
static_dir: static

- url: /.*
script: main.py

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

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

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

关于python - django_settings_module 在 GAE 服务器上未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com