Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.4K
Visualizações
django.core.exceptions.ImproperlyConfigured: establezca la variable de entorno SECRET_KEY

Este proyecto funcionaba bien hasta que usé environ para hacer SECRET_KEY y DEBUG como variable de entorno usando environ. Después de recibir este error: -

La salida es:

 (env) E:\ecommercedj>python manage.py runserver Traceback (most recent call last): File "E:\ecommercedj\env\lib\site-packages\environ\environ.py", line 273, in get_value value = self.ENVIRON[var] File "c:\users\matruchhaya\appdata\local\programs\python\python38-32\lib\os.py", line 675, in __getitem__ raise KeyError(key) from None KeyError: 'SECRET_KEY' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "E:\ecommercedj\env\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line utility.execute() File "E:\ecommercedj\env\lib\site-packages\django\core\management\__init__.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "E:\ecommercedj\env\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv self.execute(*args, **cmd_options) File "E:\ecommercedj\env\lib\site-packages\django\core\management\commands\runserver.py", line 60, in execute super().execute(*args, **options) File "E:\ecommercedj\env\lib\site-packages\django\core\management\base.py", line 369, in execute output = self.handle(*args, **options) File "E:\ecommercedj\env\lib\site-packages\django\core\management\commands\runserver.py", line 67, in handle if not settings.DEBUG and not settings.ALLOWED_HOSTS: File "E:\ecommercedj\env\lib\site-packages\django\conf\__init__.py", line 76, in __getattr__ self._setup(name) File "E:\ecommercedj\env\lib\site-packages\django\conf\__init__.py", line 63, in _setup self._wrapped = Settings(settings_module) File "E:\ecommercedj\env\lib\site-packages\django\conf\__init__.py", line 142, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "c:\users\matruchhaya\appdata\local\programs\python\python38-32\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 783, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "E:\ecommercedj\ecom\settings.py", line 11, in <module> SECRET_KEY = env('SECRET_KEY') File "E:\ecommercedj\env\lib\site-packages\environ\environ.py", line 123, in __call__ return self.get_value(var, cast=cast, default=default, parse_default=parse_default) File "E:\ecommercedj\env\lib\site-packages\environ\environ.py", line 277, in get_value raise ImproperlyConfigured(error_msg) django.core.exceptions.ImproperlyConfigured: Set the SECRET_KEY environment variable (env) E:\ecommercedj>

configuración.py

 import os import environ env = environ.Env() # read th .env file environ.Env.read_env() BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY = env('SECRET_KEY') DEBUG = env('DEBUG') ALLOWED_HOSTS = ['*'] .....

archivo .env

El valor SECRET_KEY no está entrecomillado

 SECRET_KEY = my_secret_key_value DEBUG = True

El proyecto estaba funcionando bien antes de agregar environ. ¿Estoy recibiendo el error debido a eviron? ¿Cómo debo eliminar este error?

over 4 years ago · Santiago Trujillo
8 Respostas
Responde à pergunta

0

limpia los espacios en .env!!

En el archivo .env, elimine los espacios entre el operador de asignación y var, y entre el valor y el operador de asignación. Me gusta:

 DJANGO_SECRET_KEY="NDCNSDIWBDVIBDVUOWDVJ30F9342FE20F9JCME" DEBUG="True"
over 4 years ago · Santiago Trujillo Relatório

0

Primero, instala Django-environ así

 pip install django-environ

a continuación, importe entornos en su configuración.py así

 import os import environ from pathlib import Path from django.core.exceptions import ImproperlyConfigured # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! env = environ.Env() environ.Env.read_env() def get_env_variable(var_name): try: return os.environ[var_name] except KeyError: error_msg = "set the %s environment variable" % var_name raise ImproperlyConfigured(error_msg) SECRET_KEY = get_env_variable('SECRET_KEY')

es el archivo de configuración normal de Django, lo que hiciste fue importar os, environ, ImproperlyConfigured desde la excepción, escribir la función get_env_variable y llamarla contra SECRET_KEY

a continuación, cree un archivo .env en el mismo directorio que su archivo settings.py con este contenido

 SECRET_KEY=django-insecure-b)8xiyg09+9)e4ko!o_*%5am=5(%=-%uvo5g*618619)8xcwfa

reemplace la cadena de clave secreta con la suya propia. puedes hacer referencia a este material

over 4 years ago · Santiago Trujillo Relatório

0

En realidad hay una solución simple.

configuración.py

 import os import environ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) env = environ.Env() # read th .env file environ.Env.read_env(env_file=str(BASE_DIR) + '/.env') SECRET_KEY = env('SECRET_KEY') DEBUG = env('DEBUG') ALLOWED_HOSTS = ['*'] .....

archivo .env

 SECRET_KEY=secret_key_value DEBUG=True

Finalmente, no use espacios antes y después de iguales en el archivo .env.

over 4 years ago · Santiago Trujillo Relatório

0

Si su SECRET_KEY comienza con $ (signo de dólar), encontrará la misma excepción que OP, que es un error conocido con el paquete django-environ .

En este caso, solo genera una nueva SECRET_KEY:

 from django.core.management.utils import get_random_secret_key print(get_random_secret_key())
over 4 years ago · Santiago Trujillo Relatório

0

  1. Primero cree el archivo .env en el mismo directorio que la configuración

  2. En segundo lugar, elimine cualquier espacio entre la variable y el valor-clave (es decir, KEY=my_key )

     import environ env = environ.Env() environ.Env.read_env(os.path.join(BASE_DIR, 'somepath/.env')) #<-- where ever your .env lies inside project directory SECRET_KEY = os.environ.get('somekeyInsidenvFile',env('somekeyInsidenvFile')) #
over 4 years ago · Santiago Trujillo Relatório

0

¡No tener espacios entre SECRET_KEY=my_secret_key_value me lo resolvió!

over 4 years ago · Santiago Trujillo Relatório

0

El archivo .env debe estar en el mismo directorio que settings.py

over 4 years ago · Santiago Trujillo Relatório

0

¡¡Resuelto!!

En el archivo .env, elimine los espacios entre el operador de asignación y var, y entre el valor y el operador de asignación. Me gusta:

 SECRET_KEY=my_secret_key_value DEBUG=True
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda