【问题标题】:ImportError: Environment variable DJANGO_SETTINGS_MODULE is undefinedImportError:环境变量 DJANGO_SETTINGS_MODULE 未定义
【发布时间】:2012-07-14 12:42:27
【问题描述】:

我正在学习基本的 django 教程,我正在使用 python manage.py runserver 运行服务器。我收到这个错误,我不太了解如何解决:

Traceback (most recent call last):
  File "manage.py", line 1, in <module>
    from polls.models import Poll
  File "/Users/davidhaddad/Desktop/mysite/polls/models.py", line 2, in <module>
    from django.db import models
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/__init__.py", line 11, in <module>
    if DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner
    self._setup()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/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.

settings.py 之前可见,在我添加一些代码向管理员注册一些应用模型后,我开始收到此消息。

提供更多信息:当我从项目目录中导出 DJANGO_SETTINGS_MODULE=settings 然后我执行 python django-admin.py runserver 时,服务器没有运行(没有显示)。

【问题讨论】:

  • Google 是你的朋友。试试“什么是环境变量”...
  • 更新问题,提供更多细节。

标签: python django django-admin


【解决方案1】:

当您位于项目根目录之外的位置时,您需要能够导入 DJANGO_SETTINGS_MODULE 的值。一种简单的方法是 (1) 将项目文件夹的父级添加到 PYTHONPATH,(2) 将 DJANGO_SETTINGS_MODULE 更改为 projectfoldername.settings

【讨论】:

  • 在我看来,第二个啊已经完成了。在 shell 中,当我进入项目目录(包含 manage.py 的目录)时,如果我输入 env,我会看到 DJANGO_SETTINGS_MODULE=mysite.settings。在此之后,如果我运行 python manage.py [command] 什么都没有发生。
  • mysite 父文件夹是否在您的PYTHONPATH 中?
  • 当我打开一个 python 会话并运行 >import sys >sys.path 时,项目文件夹在返回的列表中是第一个。
  • 是的,但它是需要在该列表中的项目文件夹的父级(看起来应该是 /Users/davidhaddad/Desktop)。原因是 manage.py 尝试执行与 import mysite.settings 等效的操作,为了成功,它需要在 sys.path 中找到 mysite
  • 原来是完全不相关的东西。错误地覆盖了我的 manage.py 文件。使用新的编辑器,一定是无意中输入了一些东西。感谢比约恩的帮助。此时我应该留下这个问题还是删除这个问题?
猜你喜欢
  • 2017-05-04
  • 2014-06-28
  • 2012-05-24
  • 2012-08-23
  • 2020-03-19
  • 2017-01-01
  • 1970-01-01
  • 2020-03-27
  • 1970-01-01
相关资源
最近更新 更多