Конда установил LD_LIBRARY_PATH только для env
У меня есть установка miniconda3, где я создал виртуальную среду под названием py35. У меня есть несколько библиотек, которые я хочу использовать только в этой среде. следовательно, они находятся под
/.../miniconda3/envs/py35/libs
Однако они не найдены из среды, поскольку LD_LIBRARY_PATH не содержит указанную папку. Теперь я хочу установить LD_LIBRARY_PATH для включения /lib только тогда, когда я в виртуальной среде.
Я думал об изменении активации script, который использует miniconda для запуска среды, но я не совсем уверен, является ли это стандартной практикой или есть более простой способ достичь этого.
Ответы
Ответ 1
Вы можете установить переменные среды, когда среда активируется, отредактировав скрипт activate.d/env_vars.sh
. Смотрите здесь: https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux
Ключевые части этой ссылки:
Найдите каталог для среды conda в вашем терминале окно, например /home/jsmith/anaconda3/envs/analytics
.
Войдите в этот каталог и создайте эти подкаталоги и Файлы:
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
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/
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
, эти переменные стерта.
Ответ 2
Я просто хотел добавить, что вы могли бы объявить 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