anaconda - continuum - ¿Cómo establecer variables de entorno específicas al activar el entorno de Conda?
conda python (3)
¿Alguien sabe cómo configurar automáticamente las variables de entorno al activar un env en conda? He intentado editar * / bin / activar, pero eso agrega las nuevas variables de entorno para cada nuevo env que se crea. Quiero establecer variables env que son específicas para cada env.
Así que para virtualenv en Ubuntu hice lo siguiente, donde mis nombres de entorno virtual son my_env y mis variables de entorno que deseo conservar son VAR_A y VAR_B:
virtualenv my_env
vim my_env/bin/activate
Esto abre el archivo y puede agregar sus variables env al final del archivo como se muestra a continuación:
# This is me env variables to persist
export VAR_A=/home/developer/my_workspace/var_a
export VAR_B=/home/developer/my_workspace/var_b
Luego salga del archivo.
Activa tu virtualenv con
source my_env/bin/activate
Entonces tus variables env deberían ser buenas. Se puede verificar como a continuación:
printenv | grep VAR_
VAR_B=/home/developer/my_workspace/var_b
VAR_A=/home/developer/my_workspace/var_a
La respuesta aceptada ( conda/activate.d
y conda/deactivate.d
) funciona lo suficientemente bien, pero es inconveniente si desea que las variables de entorno sean controladas por versión sin poner todo el entorno en el control de versión también. En general, desearía almacenar solo el archivo environment.yml
en el control de versiones.
(Entiendo que esto no se aplica a todos los proyectos, a veces la razón principal para usar las variables de entorno es evitar que esa configuración particular se almacene en el control de versiones).
Mi preferencia (en Windows, pero el mismo principio se aplicaría en Linux) es crear un archivo activ.cmd (controlado por versión) en la raíz del directorio del proyecto que establece la (s) variable (s) de entorno y luego llama a la propia activación de Conda. guión del bate.
Ejemplo (una configuración de pylint por proyecto):
set PYLINTRC=%cd%/pylintrc
@activate.bat %cd%/env
Tenga en cuenta que, al menos en Windows, debe configurar las variables de entorno antes de llamar a activate.bat
porque la llamada a activate.bat
nunca regresa al archivo por lotes de llamadas. También debe asignar un nombre a su propio script para que no sea recursivo, por lo que elegí la extensión cmd
(que Windows trata como un archivo por lotes en este contexto).
Utilice los archivos $PREFIX/etc/conda/activate.d
y $PREFIX/etc/conda/deactivate.d
, donde $PREFIX
es la ruta al entorno.