Подтвердить что ты не робот

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, который не сможет пройти инициализацию и выбросить указанную ошибку.

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

4b9b3361

Ответ 1

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

enter image description here

или

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

enter image description here

Ответ 2

Используйте этот

import os

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

вместо

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

Ответ 3

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

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

Ответ 4

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

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

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

src/foosite/usercustomize.py

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

Ответ 5

В моем случае мне нужно было использовать

python3 manage.py check --deploy

вместо

django-admin check --deploy

Ответ 6

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

from django.test import TestCase

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

Ответ 7

Если вы используете PyCharm, вы можете забыть выбрать конфигурацию отладки здесь:

PyCharm Screenshot

Ответ 8

enter image description here

правильно заполните "рабочий каталог" вашим рабочим путем затем запишите копию в этом месте