create active python anaconda virtualenv

python - active - Conda establece LD_LIBRARY_PATH solo para env



conda create environment python 3 (2)

Puede configurar las variables de entorno cuando se activa un entorno editando el script activate.d/env_vars.sh . Consulte aquí: https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux

Las partes clave de ese enlace son:

  1. Localice el directorio para el entorno conda en su ventana de Terminal, como /home/jsmith/anaconda3/envs/analytics .

  2. Ingrese a ese directorio y cree estos subdirectorios y archivos:

    cd /home/jsmith/anaconda3/envs/analytics mkdir -p ./etc/conda/activate.d mkdir -p ./etc/conda/deactivate.d touch ./etc/conda/activate.d/env_vars.sh touch ./etc/conda/deactivate.d/env_vars.sh

  3. Edite ./etc/conda/activate.d/env_vars.sh siguiente manera:

    #!/bin/sh export MY_KEY=''secret-key-value'' export MY_FILE=/path/to/my/file/

  4. Edite ./etc/conda/deactivate.d/env_vars.sh siguiente manera:

    #!/bin/sh unset MY_KEY unset MY_FILE

Cuando ejecuta el source activate analytics , las variables de entorno MY_KEY y MY_FILE se configuran según los valores que escribió en el archivo. Cuando ejecutas la source deactivate , esas variables se borran.

Tengo una instalación de miniconda3 donde he creado un entorno virtual llamado py35. Tengo algunas bibliotecas que solo quiero usar desde este entorno. por lo tanto están bajo

/.../miniconda3/envs/py35/libs

Sin embargo, no se encuentran dentro del entorno, ya que LD_LIBRARY_PATH no contiene dicha carpeta. Ahora quiero configurar LD_LIBRARY_PATH para incluir la / lib solo cuando estoy en el entorno virtual.

Estaba pensando en modificar el script de activación que miniconda usa para iniciar el entorno, pero no estoy muy seguro de si esto es una práctica estándar o si hay una manera más fácil de lograrlo.


Solo quería agregar que se podrían declarar 2 variables en el activador.d / env_vars.sh como, hace que sea más fácil restablecer la variable al estado de pre-activación:

export OLD_LD_LIBRARY_PATH=${LD_LIBRARY_PATH} export LD_LIBRARY_PATH=/your/path:${LD_LIBRARY_PATH}

y luego en deactivate.d / env_vars.sh:

export LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH} unset OLD_LD_LIBRARY_PATH