【发布时间】:2020-03-19 18:04:41
【问题描述】:
这个错误很容易重现。基本上只需启动一个新的 django 项目并使用 django-admin 运行服务器。我阅读了许多 StackOverflow 帖子并尝试了多种方法但没有奏效。以下是重现的详细步骤:
- 创建了名为
testproject的新目录 pipenv install django- 使用 django 启动项目脚本启动名为
test的新项目 pipenv shelldjango-admin runserver- 错误:
"django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings." - 按照官方 django 文档中的建议在 ubuntu 中输入:
export DJANGO_SETTINGS_MODULE=test.settings django-admin runserver- 出现一大行错误,后跟
ModuleNotFoundError: No module named 'test'。但是,如果我执行django-admin runserver --pythonpath=. --settings="test.settings",服务器会成功运行。
我知道我可以只使用 python manage.py 来启动服务器,但我的项目使用 Django 缓存框架,当我尝试访问缓存时,会抛出相同的 settings are not configured 错误。试图了解发生了什么,任何帮助将不胜感激。
【问题讨论】:
-
你试过
python manage.py runserver吗? -
Export pythonpath 解决了这个问题:stackoverflow.com/questions/8826534/…
-
@Klaus D. 是的,我做到了,而且成功了,但我认为这是因为在 manage.py 中为我设置了 env var:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'test.settings') -
只是为了明确一点:你应该使用
manage.py而不是django-admin,它会配置项目特定的东西,比如PYTHONPATH。 -
我理解这一点,这就是为什么我添加了有关使用 Django 缓存框架的 cmets,因为访问缓存会出现相同的错误:
Requested setting CACHES, but settings are not configured。我正在使用 django-admin 来简化和重现错误,而无需涉及 django 缓存