Python Django DB设置';配置不当';错误
Django(1.5)对我来说工作正常,但当我启动Python解释器(Python 3)检查某些内容时,我在尝试从Django.contrib.auth.models import User导入-Python Django DB设置';配置不当';错误,python,django,Python,Django,Django(1.5)对我来说工作正常,但当我启动Python解释器(Python 3)检查某些内容时,我在尝试从Django.contrib.auth.models import User导入-时遇到了最奇怪的错误 Traceback (most recent call last): File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 36, in _setup settings_m
时遇到了最奇怪的错误
Traceback (most recent call last):
File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 36, in _setup
settings_module = os.environ[ENVIRONMENT_VARIABLE]
File "/usr/lib/python3.2/os.py", line 450, in __getitem__
value = self._data[self.encodekey(key)]
KeyError: b'DJANGO_SETTINGS_MODULE'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/dist-packages/django/contrib/auth/models.py", line 8, in <module>
from django.db import models
File "/usr/local/lib/python3.2/dist-packages/django/db/__init__.py", line 11, in <module>
if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES:
File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 52, in __getattr__
self._setup(name)
File "/usr/local/lib/python3.2/dist-packages/django/conf/__init__.py", line 45, in _setup
% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES,
but settings are not configured. You must either define the environment
variable DJANGO_SETTINGS_MODULE or call settings.configure()
before accessing settings.
…这是如何不正确配置的?您不能只启动Python并进行检查,Django不知道您要处理什么项目。您必须执行以下操作之一:
- 使用
python manage.py shell
- 使用django-admin.py shell--settings=mysite.settings
(或您使用的任何设置模块)
setup\u environ
:
from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)
当然,第一种方法是最简单的。在pythonshell/ipython中:
from django.conf import settings
settings.configure()
在我自己的例子中,在python2.7.11上运行的django 1.10.1中,我尝试使用
django admin runserver
来启动服务器,而不是在我的项目目录中使用manage.py runserver
。在django 1.9上,我尝试了django admin runserver
并得到了相同的错误,但是当我使用python manage.py runserver
时,我得到了预期的结果。这可能会解决很多人的错误 在我的例子中,我是在尝试通过PyCharm运行Django测试时得到这个消息的。我认为这是因为PyCharm没有加载初始Django项目设置,即那些最初运行的manage.py shell
。可以将它们添加到测试脚本的开头,也可以使用manage.py test
运行测试
版本:
- Python 3.5(在virtualenv中)
- PyCharm 2016.3.2专业版
- Django 1.10
2017年,django 1.11.5和python 3.6(从评论中可以看出,这也适用于python 2.7):
对于使用IntelliJ的用户,放置此代码的
.py
应该位于mysite
(父站点),通过这些设置,我可以从shell(在windows上)进行查询
谢谢!我在文档中对此不太清楚,或者可能是我读了之后忘记了。奇怪的是,它似乎找不到“mysite.settings”文件,但我可以看到它作为mysite/settings.py放在那里。啊!我开始讨厌Django了。是的,
setup\u environ
在1.6中被删除了,但是——settings
应该可以工作。你确定你的设置在进一步的FirstBlog.settings
,而不仅仅是在当前目录下的settings
中吗?以上这些都不适用于我,但这一个确实适用:$export DJANGO\u settings\u MODULE=“my\u project.settings”
在PyCharm中执行此操作的地方是运行|编辑配置|(例如,项目中的单元测试)|配置|环境|环境变量:DJANGO_SETTINGS_MODULE=(项目目录名)。设置
在设置新项目时遇到此问题。我发现取消设置DJANGO\u设置\u模块有帮助。我遇到了一个问题,我在django 1.10上的.bashrccame中设置了env var,但是在尝试运行命令loaddata时,应用程序还没有加载。
非常感谢,在我使用python 2.7 Tothis的案例工作中,没有其他解决方案有效。py
应该放在根目录下,这意味着它与manage.py一起使用。如何将其放置在随机文件夹中?需要注意的是,只有将其放在文件的顶部,如果将其放在类似的内容中,如果_uname__==“_umain__;”:
它将无法正常工作:)
from django.conf import settings
settings.configure()
import django
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.setup()