Comencé a trabajar en un proyecto de Django y me gustaría configurar algunas variables de entorno sin configurarlas manualmente o tener un archivo bash en la fuente.
Quiero configurar las siguientes variables:
export DATABASE_URL=postgres://127.0.0.1:5432/my_db_name export DEBUG=1 # there are other variables, but they contain personal information
He leído esto , pero eso no resuelve lo que quiero. Además, he intentado configurar las variables de entorno en Preferencias -> Compilación, Ejecución, Implementación -> Consola -> Consola Python / Consola Django , pero establece las variables para el intérprete.
Puede establecer variables ambientales en el menú de configuraciones de ejecución de Pycharm.
Abra el selector Ejecutar configuración en la esquina superior derecha y haga clic en Edit Configurations...
Busque Environmental variables
y haga clic en ...
Agregue o cambie las variables, luego haga clic en OK
Puede acceder a sus variables ambientales con os.environ
import os print(os.environ['SOME_VAR'])
Pude resolver esto usando un complemento de PyCharm llamado EnvFile . Este complemento básicamente permite establecer variables de entorno para ejecutar configuraciones desde uno o varios archivos.
La instalación es bastante simple:
Preferencias > Complementos > Examinar repositorios... > Buscar "Archivo Env" > Instalar complemento .
Luego, creé un archivo, en la raíz de mi proyecto, llamado environment.env
que contiene:
DATABASE_URL=postgres://127.0.0.1:5432/my_db_name DEBUG=1
Luego fui a Ejecutar -> Editar Configuraciones , y seguí los pasos de la siguiente imagen:
En 3, elegí el archivo environment.env
, y luego pude simplemente hacer clic en el botón de reproducción en PyCharm, y todo funcionó a la perfección.
Esta funcionalidad se ha agregado al IDE ahora (en funcionamiento Pycharm 2018.3)
Simplemente haga clic en la pestaña EnvFile
en la configuración de ejecución, haga clic en Enable EnvFile
y haga clic en el ícono + para agregar un archivo env
Actualización: Esencialmente lo mismo que la respuesta de @imguevargasf pero el complemento estaba habilitado de forma predeterminada para mí.