Fly*_*ler 24 python virtualenv anaconda
我安装了miniconda3,我创建了一个名为py35的虚拟环境.我有一些我只想在这个环境中使用的库.因此他们在
/.../miniconda3/envs/py35/libs
Run Code Online (Sandbox Code Playgroud)
但是,由于LD_LIBRARY_PATH不包含所述文件夹,因此无法在环境中找到它们.我现在想要将LD_LIBRARY_PATH设置为仅当我在虚拟环境中时包含/ lib.
我正在考虑修改miniconda用于启动环境的激活脚本,但我不太确定这是否是标准做法,或者是否有更简单的方法来实现这一点.
dar*_*ith 32
通过编辑activate.d/env_vars.sh脚本激活环境时,可以设置环境变量.请参见:https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux
该链接的关键部分是:
在终端窗口中找到conda环境的目录,例如
/home/jsmith/anaconda3/envs/analytics.输入该目录并创建这些子目录和文件:
Run Code Online (Sandbox Code Playgroud)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编辑
./etc/conda/activate.d/env_vars.sh如下:Run Code Online (Sandbox Code Playgroud)#!/bin/sh export MY_KEY='secret-key-value' export MY_FILE=/path/to/my/file/编辑
./etc/conda/deactivate.d/env_vars.sh如下::Run Code Online (Sandbox Code Playgroud)#!/bin/sh unset MY_KEY unset MY_FILE运行时
conda activate analytics,环境变量MY_KEY和MY_FILE将设置为您在文件中写入的值.运行时conda deactivate,这些变量将被删除.
小智 19
我只是想补充一点,你可以在activate.d/env_vars.sh中声明2个变量,这样可以更容易地将变量重置为预激活状态:
export OLD_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH=/your/path:${LD_LIBRARY_PATH}
Run Code Online (Sandbox Code Playgroud)
然后在deactivate.d/env_vars.sh中:
export LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH}
unset OLD_LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)