webentwicklung-frage-antwort-db.com.de

django.core.exceptions.ImproperlyConfigured: Angeforderte Einstellung CACHES, aber die Einstellungen sind nicht konfiguriert. Sie müssen entweder die Umgebung varia definieren

Ich habe alles versucht, was ich finden konnte, um dieses Problem zu beheben, und ich fange an, mir die Haare ein wenig herauszureißen ... Ich bekomme diese Fehlermeldung:

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.

Meine Skripte laufen gut, wenn ich:

python3 ./manage.py runserver

Immer wenn ich versuche, Tests auszuführen, erhalte ich den obigen Fehler ....__ Ich verwende eine VirtualEnv, die nichts global erbt, alles installiert ist (mit der korrekten Version) und in meinem manage.py eingestellt habe

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

Ich verwende PyCharm Proffesional für die Entwicklung, und ich habe versucht, die Tests sowohl in der IDE als auch in der Shell auszuführen. Innerhalb der Shell verwende ich:

python3 manage.py test     

Die Shell findet keine Tests. Der Test ist grundlegend, und ich habe mich nicht wirklich mit dem Inhalt beschäftigt, da es die Umgebung ist, mit der ich zu kämpfen habe.UPDATE: Ich habe das Problem mit der Shell gelöst. Tests müssen definiert werden durch:

def test_<name>():

Dies hat jedoch mein Problem mit PyCharm nicht gelöst. Ich habe auch angerufen:

settings.configure()

Was sagte mir, dass es bereits konfiguriert war.
Bitte beachte, dass ich not keine Datenbank mit Django verwende, und ich habe die entsprechenden Dinge aus den Einstellungen heraus kommentiert.

Der volle Fehler ist:

  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.

Ich habe PyCharm unter Sudo ausgeführt, um sicherzustellen, dass das Problem keine Berechtigungen war, da ich das Env unter root speichere.

EDIT: Ich habe gerade entdeckt, dass meine Tests, die Django nicht verwenden, gut laufen, aber Pycharm immer noch einige Fehler auslöst. Diese Fehler sind nicht die einzelnen Tests, sondern lediglich der Fehler, den ich hier erwähnt habe (es gibt 341 Tests, die nicht mit Django zusammenhängen). Ich habe nur einen Test, der Django verwendet, der die Initialisierung nicht übersteht und den erwähnten Fehler auslöst.

Ich hoffe, ich war erklärend

25
Maximas

Wenn Sie PyCharm Pro verwenden, können Sie Ihre App entweder mit der Aktion "Django Console ausführen ..." testen. Nachdem Sie auf "Test" geklickt haben, werden Sie zur Eingabe der App aufgefordert, die Sie testen möchten.

enter image description here

oder

Erstellen Sie einen Django-Test in der Run/Debug-Konfiguration.

enter image description here

7
yehe

Benutze das

import os

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

anstatt 

os.environ.setdefault("Django_SETTINGS_MODULE", "<appname>.settings")
27
Vishal Sharma

In Ihrem Python-Skript versuchen Sie, auf Django-Modelle zuzugreifen, bevor Sie die Umgebung einrichten. Versuchen Sie es in dieser Reihenfolge:

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

da ich dies nicht in jeder Datei hinzufügen möchte, habe ich eine Datei namens usercustomize.py erstellt und diesen Inhalt hinzugefügt:

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

Der Dateipfad in meinem Fall:

src/foosite/usercustomize.py

Ich habe Foosite mit "pip install -e" installiert. Ich bin nicht sicher, ob dies für normale Installationen funktioniert.

2
guettli

In meinem Fall musste ich verwenden

python3 manage.py check --deploy

anstatt von

Django-admin check --deploy
1
Samer s Salib

Wenn Sie PyCharm verwenden, haben Sie möglicherweise vergessen, Ihre Debug-Konfiguration hier auszuwählen:

 PyCharm Screenshot

0
Josh

Ich habe diese Fehlermeldung erhalten, als ich TestCase von unittest2 importierte. Ich habe es durch Importieren von TestCase behoben:

from Django.test import TestCase

Mein Verdacht wurde geweckt, als der Test als "Test" und nicht als "Test" bezeichnet wurde. Ich musste die ganze Suite ausführen, bevor Pycharm erkannte, dass ich diese Änderung vorgenommen hatte ...

0
Steve Bradshaw

enter image description here

füllen Sie "Arbeitsverzeichnis" korrekt mit Ihrem Arbeitspfad und schreiben Sie die Kopie an ihre Stelle

0
safe89