Django (1.5) работает хорошо для меня, но когда я запускаю интерпретатор Python (Python 3), чтобы проверить некоторые вещи, я получаю самую странную ошибку, когда пытаюсь импортировать - from 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_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, DATABASES
настройки:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'django_db', # Or path to database file if using sqlite3.
# The following settings are not used with sqlite3:
'USER': 'zamphatta',
'PASSWORD': 'mypassword91',
'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '', # Set to empty string for default.
}
}
... как это неправильно настроено?
unset DJANGO_SETTINGS_MODULE
. Я столкнулся с проблемой, когда я установил env var в моем .bashrcОтветы:
Вы не можете просто запустить Python и проверить вещи, Django не знает, над каким проектом вы хотите работать. Вы должны сделать одну из следующих вещей:
python manage.py shell
django-admin.py shell --settings=mysite.settings
(или любой другой модуль настроек, который вы используете)DJANGO_SETTINGS_MODULE
переменную среды в вашей ОС наmysite.settings
(Это удалено в Django 1.6). Используйте
setup_environ
в интерпретаторе python:Естественно, первый способ самый простой.
источник
setup_environ
удаляется в 1.6, но--settings
должно работать. Вы уверены, что ваши настройки находятся дальшеFirstBlog.settings
, а не только вsettings
текущем каталоге?$ export DJANGO_SETTINGS_MODULE="my_project.settings"
DJANGO_SETTINGS_MODULE=(project directory name).settings
В вашей оболочке python / ipython выполните:
источник
Apps aren't loaded yet.
В 2017 году с django 1.11.5 и python 3.6 ( из комментария это также работает с Python 2.7 ):
В
.py
котором вы должны поместить этот кодmysite
(родительский)источник
.py
должно быть помещено в корень , что означает, что это наряду с manage.py. Как мне поместить его в случайные папки?if __name__ == "__main__":
оно не будет работать правильно :)На Django 1.9 я попробовал
django-admin runserver
и получил ту же ошибку, но когда я использовал,python manage.py runserver
я получил ожидаемый результат. Это может решить эту ошибку для многих людей!источник
В моем случае я получил это при попытке запустить тесты Django через PyCharm. Я думаю, это потому, что PyCharm не загружает исходные настройки проекта Django, то есть те, которые
manage.py shell
запускаются изначально. Можно добавить их в начало скрипта тестирования или просто запустить тесты, используяmanage.py test
.Версии:
источник
в моем собственном случае в django 1.10.1, работающем на python2.7.11, я пытался запустить сервер, используя
django-admin runserver
вместоmanage.py runserver
моего каталога проекта.источник
Для людей, использующих IntelliJ, с этими настройками я смог сделать запрос из оболочки (на окнах).
источник