Conda set LD_LIBRARY_PATH for env only

I have a miniconda3 installation where I created a virtual environment called py35. I have several libraries that I want to use only in this environment. therefore they are under

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

However, they were not found from the environment because LD_LIBRARY_PATH does not contain the specified folder. Now I want to set LD_LIBRARY_PATH to include / lib only when I'm in a virtual environment.

I was thinking about changing the activation script that miniconda uses to start the environment, but I'm not quite sure if this is standard practice or there is an easier way to achieve this.

+22
source share
2 answers

, , activate.d/env_vars.sh. : https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux

:

  1. conda , /home/jsmith/anaconda3/envs/analytics.

  2. :

    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. Edit ./etc/conda/activate.d/env_vars.sh as follows:

    #!/bin/sh
    
    export MY_KEY='secret-key-value'
    export MY_FILE=/path/to/my/file/
    
  4. Edit ./etc/conda/deactivate.d/env_vars.sh as follows::

    #!/bin/sh
    
    unset MY_KEY
    unset MY_FILE
    

conda activate analytics, MY_KEY MY_FILE , . conda deactivate, .

+30

, 2 activate.d/env_vars.sh, reset :

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

deactivate.d/env_vars.sh:

export LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH}
unset OLD_LD_LIBRARY_PATH
+19

Source: https://habr.com/ru/post/1687781/


All Articles