Me he movido de mi SECRET_KEY
valor de mi archivo de configuración, y se establece cuando puedo cargar mi virtualenv. Puedo confirmar que el valor presente de python manage.py shell
.
Cuando ejecuto el Django de la Consola, SECRET_KEY
falta, como debe ser. Así, en las preferencias, me voy a la Consola>Django Consola y carga SECRET_KEY
y el valor adecuado. Vuelvo al Django Consola, y SECRET_KEY
está ahí.
Como era de esperar, yo aún no puedo ejecutar un manage.py Tarea debido a que todavía tiene que encontrar la SECRET_KEY
. Así que voy a Ejecutar>Editar las Configuraciones para agregar SECRET_KEY
en Django servidor y Django Pruebas, y en el proyecto de servidor. Reinicie Pycharm, confirmar claves.
Cuando ejecuto un manage.py Tarea, como runserver
, todavía me KeyError: 'SECRET_KEY'.
Donde puedo poner esta clave?
- Por qué has hecho esto en primer lugar?
- Las claves secretas en textos simples archivos, especialmente como parte de un repo en algún lugar, es una mala idea.
- EnvFile es una extensión que permite leer las variables de entorno desde un archivo. Que permite establecer las variables en un archivo sin tener que gestionar su código…
Porque Pycharm no es el lanzamiento de un terminal, su entorno no será cargado. En resumen, cualquier programa GUI no heredarán las variables del SHELL. Ver este por razones (suponiendo un Mac).
Sin embargo, existen varias soluciones a este problema. Como @user3228589 publicado, puede configurar esto como una variable dentro de PyCharm. Esto tiene varios pros y contras. Yo, personalmente, no me gusta este método porque no es un
single source
. Para solucionar este problema, yo uso una pequeña función en la parte superior de mi settings.py archivo que busca la variable dentro de un local.env
archivo. Puse todo de mi «privado» cosas allí. Yo también puede hacer referencia a esto en mi virtualenv.Aquí es lo que parece.
— settings.py
A continuación, el env archivo se parece a esto:
Y, finalmente, su virtualenv/bin/postactivate puede fuente de este archivo. Usted podría ir más allá y exportar las variables como se describe aquí si quieres, pero desde el archivo de configuración llama directamente a el .env, no hay realmente una necesidad.
Para establecer las variables de entorno en PyCharm hacer lo siguiente:
os.environ.get("KEY")
Mismo aquí, por alguna razón PyCharm no puede ver exportado env variables.
Por ahora me puse SECRET_KEY en PyCharm Run/Debug Configurations -> «variables de Entorno»
Otra opción que trabajó para mí:
Pycharm tendrá acceso a las variables de entorno. Probablemente a causa de algo que tiene que ver con la PyCharm proceso de ser un hijo de la concha.
Puede establecer el manage.py la tarea de las variables de entorno a través de:
Preferencias| Languages&Marcos| Django| Manage.py tareas
Configuración de la env variables a través de la run/debug/configuración de la consola no afectará a la construida en el pycharm del manage.py tarea.
En Pycharm
manage.py
tareas que se ejecutan en un proceso aislado que no tiene acceso a las variables de entorno (no es lo mismo Ejecutar/Depurar).La solución más sencilla es hacer que el código de python conscientes de las variables de entorno mediante la lectura de su
.env
archivo directamente.Echa un vistazo a: https://github.com/joke2k/django-environ
De esa manera se tiene una sola fuente de configuraciones, y menos ajustes en el IDE.
Espero que ayude,
Parafraseando @antero-ortiz respuesta, en lugar de utilizar el valor predeterminado de Mac, haga doble clic o de búsqueda de spotlight para el lanzamiento de PyCharm, puedes ejecutarlo directamente desde el terminal. Esto se hereda todas sus variables de entorno de su sesión de terminal para el PyCharm aplicación.
He aquí cómo puedo resolver este problema.
...
junto aEnvironment variables
Show
en la parte inferior derecha de la pantalla que aparece. Esto mostrará todos de las variables de entorno heredado por el proceso de Depuración.SECRET_KEY
en esta lista. Si no lo hay, publicar un comentario en esta respuesta y podemos tratar de averiguar!Fragmento:
Nota de lado
Incluyendo las variables de entorno en un archivo que después se
source
‘d es un patrón común para Django desarrollo, y la discusión de que la mejor práctica es mejor dejar de respuestas.basa en @rh0dium increíble respuesta que he hecho de esta clase:
aquí está mi settings.py:
y dentro de mi runserver.py tengo este código de llamada:
En PyCharm 2018 puede utilizar django manage.py las variables de entorno opción en la configuración
Usted puede ver en la imagen
La respuesta por @(nu everest) no me funciona. Lo que se describe en la pregunta que trabajó para mí. Usted puede configurar todas las variables de entorno en el Run/Debug Configurations de diálogo. Este es w.r.t PyCharm 2016.1 y también por https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-python.html?origin=old_help
Estoy tratando de esta configuración en la actualidad. Tengo una
env.local
archivo en mi raíz del proyecto. Mimanage.py
se parece a esto:Entonces me acaba de pasar
--load-env
en el PyCharm de diálogo ejecutar y todas las variables de entorno se cargará en el momento de la ejecución.Por favor, tenga en cuenta que la respuesta mencionado por «nu everest» funciona, pero usted no podrá ver la ficha de la Consola disponible a menos que crear un proyecto en pycharm. Como los archivos se pueden ejecutar sin necesidad de crear un proyecto en pycharm algunas personas puede ser confuso. Aunque también tenga en cuenta que se pierde la configuración para ejecutar-configuraciones que no pertenecen a un proyecto cuando pycharm es cerrado.
Aquí está mi manage.py archivo en caso de ayuda. Lee todas las variables .env archivo ubicado en el directorio raíz de mi proyecto.
Considero que un buen método es usar django-environ que le permiten leer las variables de entorno desde una
.env
archivo.Uso
Instalar en primer lugar,
django-environ
Segundo, crear un
.env
archivo en el mismo directorio de tusettings.py
archivo.Tercero, agregar las variables de entorno que desea utilizar para
.env
:Cuarto, en el archivo de configuración, agregar lo siguiente justo después de que su importación de declaraciones:
Quinto, cargar las variables de entorno:
Que es. Si desea más información acerca de por favor revise el docs.
Nota: esta configuración también le ayudará a establecer variables de entorno cuando se ejecuta un servidor de PyCharm.