django.core.exceptions.ImproperlyConfigured: Se solicitó la configuración de CACHES, pero la configuración no está establecida. Usted debe definir la variable de entorno

He intentado todo lo que pude encontrar para solucionar este problema, y ​​estoy empezando a arrancarme un poco el pelo. Estoy recibiendo este error:

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. 

Mis scripts funcionan bien cuando lo hago:

 python3 ./manage.py runserver 

Sin embargo, cada vez que bash ejecutar pruebas, obtengo el error anterior … Utilizo un VirtualEnv, que no hereda nada globalmente, todo está instalado (con la versión correcta) y, dentro de mi manage.py, he establecido:

 os.environ.setdefault("DJANGO_SETTINGS_MODULE", ".settings") 

Estoy usando PyCharm Proffesional para desarrollar, y he intentado ejecutar las pruebas tanto en el IDE como en el shell. Dentro del shell estoy usando:

 python3 manage.py test 

La shell no encuentra pruebas. El examen es básico, y en realidad no me preocupa tanto el contenido que tiene actualmente como el entorno con el que estoy luchando. ACTUALIZACIÓN : He resuelto el problema con el shell. Las pruebas deben ser definidas por:

 def test_(): 

Sin embargo, esto no ha resuelto mi problema con PyCharm. También he llamado:

 settings.configure() 

Lo que me dijo que ya estaba configurado.
Tenga en cuenta que no estoy usando ninguna base de datos con Django, y he comentado las cosas apropiadas fuera de la configuración.

El error completo es:

  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//Documents///tests.py", line 1, in  from django.test.utils import setup_test_environment File "/root/virtualenv/lib/python3.4/site-packages/django/test/__init__.py", line 5, in  from django.test.client import Client, RequestFactory File "/root/virtualenv/lib/python3.4/site-packages/django/test/client.py", line 11, in  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  from django.middleware.csrf import rotate_token File "/root/virtualenv/lib/python3.4/site-packages/django/middleware/csrf.py", line 14, in  from django.utils.cache import patch_vary_headers File "/root/virtualenv/lib/python3.4/site-packages/django/utils/cache.py", line 26, in  from django.core.cache import get_cache File "/root/virtualenv/lib/python3.4/site-packages/django/core/cache/__init__.py", line 69, in  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. 

He ejecutado PyCharm bajo sudo para garantizar que el problema no fueran los permisos, ya que estoy almacenando la env en la raíz.

EDITAR : Acabo de descubrir que mis pruebas que no usan Django se están ejecutando bien, pero Pycharm todavía está lanzando varios fallos. Estas fallas no son las pruebas individuales, son solo el error que he mencionado aquí (hay 341 pruebas que no están relacionadas con Django). Solo tengo una prueba que usa Django, que no pasará de inicializar y lanzar el error mencionado.

Espero que haya sido explicativo

Si está utilizando PyCharm Pro, puede probar su aplicación con la acción ‘Ejecutar la consola de Django …’. Después de hacer clic en ‘probar’, le pedirá la aplicación que desea probar.

introduzca la descripción de la imagen aquí

o

Cree una prueba de Django en la configuración Ejecutar / Depurar.

introduzca la descripción de la imagen aquí

Utilizar esta

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

en lugar de

 os.environ.setdefault("DJANGO_SETTINGS_MODULE", ".settings") 

En su script de Python, está intentando acceder a los modelos de Django antes de configurar el entorno, inténtelo en este orden:

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

ya que, no quiero agregar esto a todos los archivos, creé un archivo llamado usercustomize.py y agregué este contenido:

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

La ruta del archivo en mi caso:

 src/foosite/usercustomize.py 

Instalé foosite con “pip install -e”. No estoy seguro si esto funciona para instalaciones normales.

Recibí este error cuando importé TestCase desde unittest2. Lo arreglé importando TestCase por:

 from django.test import TestCase 

Mis sospechas surgieron cuando la prueba se etiquetó como “Unittest” en lugar de “Test”. Tuve que ejecutar toda la suite antes de que Pycharm se diera cuenta de que había hecho este cambio …

Si está utilizando PyCharm, puede haber olvidado elegir su configuración de depuración aquí:

Captura de pantalla de PyCharm

En mi caso necesitaba usar

 python3 manage.py check --deploy 

en lugar de

 django-admin check --deploy