continuum anaconda conda

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.