Django“未配置设置”错误,无法定义环境变量 DJANGO_SETTINGS_MODULE

Posted

技术标签:

【中文标题】Django“未配置设置”错误,无法定义环境变量 DJANGO_SETTINGS_MODULE【英文标题】:Django "settings are not configured" error and cannot define environment variable DJANGO_SETTINGS_MODULE 【发布时间】:2020-03-19 18:04:41 【问题描述】:

这个错误很容易重现。基本上只需启动一个新的 django 项目并使用 django-admin 运行服务器。我阅读了许多 *** 帖子并尝试了多种方法但没有奏效。以下是重现的详细步骤:

    创建了名为testproject 的新目录 pipenv install django 使用 django 启动项目脚本启动名为 test 的新项目 pipenv shell django-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 解决了这个问题:***.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 缓存 【参考方案1】:

在您的列表中,我没有看到虚拟环境激活。

你激活虚拟环境了吗?

''' 源激活测试项目 '''

【讨论】:

以上是关于Django“未配置设置”错误,无法定义环境变量 DJANGO_SETTINGS_MODULE的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Django 中的“请求设置 INSTALLED_APPS,但未配置设置。”错误?

Django 错误 - 无法导入 Django。您确定它已安装并在您的 PYTHONPATH 环境变量中可用吗?

无法在 Django 设置文件中获取环境变量

django.core.exceptions.ImproperlyConfigured:请求设置 USE_I18N,但未配置设置

ImproperlyConfigured:请求设置 INSTALLED_APPS,但未配置设置 - Scraper

容器无法启动。无法启动并监听 PORT 环境变量定义的端口