Я пробовал все, что мог найти, чтобы исправить эту проблему, и я начинаю немного разорвать свои волосы. Я получаю эту ошибку:
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, который не сможет пройти инициализацию и выбросить указанную ошибку.
Надеюсь, что я был объяснением.