django.core.exceptions.ImproperlyConfigured: запрошенный параметр CACHES, но настройки не настроены. Вы должны либо определить переменную окружения varia

Я пробовал все, что мог найти, чтобы исправить эту проблему, и я начинаю немного разорвать свои волосы. Я получаю эту ошибку:

django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

Мои скрипты работают нормально, когда я это делаю:

 python3 ./manage.py runserver 

Однако всякий раз, когда я пытаюсь запустить тесты, я получаю вышеуказанную ошибку … Я использую VirtualEnv, который не наследует ничего глобально, все установлено (с правильной версией) и внутри моего manage.py я установил:

 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<appname>.settings") 

Я использую PyCharm Proffesional для разработки, и я попытался запустить тесты как в среде IDE, так и в оболочке. Внутри оболочки я использую:

 python3 manage.py test 

Оболочка не находит никаких тестов. Тест является базовым, и на самом деле я не очень беспокоюсь о его содержании в настоящее время, поскольку это среда, с которой я борюсь. ОБНОВЛЕНИЕ : Я решил проблему с оболочкой. Тесты должны определяться:

 def test_<name>(): 

Однако это не решило мою проблему с PyCharm. Я также позвонил:

 settings.configure() 

Который сказал мне, что он уже настроен.
Обратите внимание, что я не использую ни одну базу данных с Django, и я прокомментировал соответствующие вещи из настроек.

Полная ошибка:

  Traceback (most recent call last): File "/root/kiloenv/lib/python3.4/site-packages/django/conf/__init__.py", line 38, in _setup settings_module = os.environ[ENVIRONMENT_VARIABLE] File "/usr/lib/python3.4/os.py", line 631, in __getitem__ raise KeyError(key) from None KeyError: 'DJANGO_SETTINGS_MODULE' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/<username>/Documents/<dirname>/<appname>/tests.py", line 1, in <module> from django.test.utils import setup_test_environment File "/root/virtualenv/lib/python3.4/site-packages/django/test/__init__.py", line 5, in <module> from django.test.client import Client, RequestFactory File "/root/virtualenv/lib/python3.4/site-packages/django/test/client.py", line 11, in <module> from django.contrib.auth import authenticate, login, logout, get_user_model File "/root/virtualenv/lib/python3.4/site-packages/django/contrib/auth/__init__.py", line 6, in <module> from django.middleware.csrf import rotate_token File "/root/virtualenv/lib/python3.4/site-packages/django/middleware/csrf.py", line 14, in <module> from django.utils.cache import patch_vary_headers File "/root/virtualenv/lib/python3.4/site-packages/django/utils/cache.py", line 26, in <module> from django.core.cache import get_cache File "/root/virtualenv/lib/python3.4/site-packages/django/core/cache/__init__.py", line 69, in <module> if DEFAULT_CACHE_ALIAS not in settings.CACHES: File "/root/virtualenv/lib/python3.4/site-packages/django/conf/__init__.py", line 54, in __getattr__ self._setup(name) File "/root/virtualenv/lib/python3.4/site-packages/django/conf/__init__.py", line 47, in _setup % (desc, ENVIRONMENT_VARIABLE)) django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

Я запускал PyCharm под sudo, чтобы гарантировать, что проблема не была разрешена, поскольку я храню env под root.

EDIT : Я только что обнаружил, что мои тесты, которые не используют Django, работают нормально, но Pycharm все еще бросает несколько сбоев. Эти сбои не являются отдельными тестами, это просто ошибка, о которой я упоминал здесь (есть 341 тест, который не связан с Django). У меня есть только один тест, который использует Django, который не сможет пройти инициализацию и выбросить указанную ошибку.

Надеюсь, я был объяснением

5 Solutions collect form web for “django.core.exceptions.ImproperlyConfigured: запрошенный параметр CACHES, но настройки не настроены. Вы должны либо определить переменную окружения varia”

Если вы используете PyCharm Pro, вы можете проверить свое приложение с помощью действия «Запустить Django Console …». После того, как вы нажмете «test», он предложит вам приложение, которое вы хотите проверить.

введите описание изображения здесь

или

Создайте тест Django в конфигурации Run / Debug.

введите описание изображения здесь

Использовать это

 import os os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 

вместо

 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<appname>.settings") 

В сценарии python вы пытаетесь получить доступ к моделям Django, прежде чем устанавливать среду в этом порядке:

 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<appname>.`settings`") from <appname>.models import Class1, Class2,... 

так как я не хочу добавлять это в каждый файл, я создал файл с именем sitecustomize.py и добавил этот контент:

 import os os.environ['DJANGO_SETTINGS_MODULE']='foosite.settings' 

Путь к файлу в моем случае:

 src/foosite/sitecustomize.py 

Я установил foosite с «pip install -e». Я не уверен, что это работает для нормальной установки.

Я получил эту ошибку, когда импортировал TestCase из unittest2. Я исправил его, импортировав TestCase:

 from django.test import TestCase 

Мои подозрения были подняты, когда тест был помечен как «Unittest», а не «Test». Я должен был запустить весь набор, прежде чем Пичард понял, что сделал это изменение …

  • Множество расстояний до списка (строка, столбец, расстояние)
  • почему Python 3 нуждается в переносе dict.items со списком ()
  • Звездочки вне вызовов функций
  • Использование win32com с многопоточным
  • Почему этот код argparse ведет себя по-разному между Python 2 и 3?
  • Оба Python 2 и 3 в Emacs
  • getpass.getpass () без другого кода?
  • Должен ли я добавлять инструкции __future__ в каждый файл моего проекта?
  • Python - лучший язык программирования в мире.