2017-10-19 92 views
3

我有一个安装了miniconda3的地方,我创建了一个名为py35的虚拟环境。我有一些我只想在这个环境中使用的库。因此他们在Conda仅为env设置LD_LIBRARY_PATH

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

然而,它们没有从环境中找到,因为LD_LIBRARY_PATH不包含所述文件夹。我现在要设置LD_LIBRARY_PATH以仅在我处于虚拟环境中时包含/ lib。

我在考虑修改miniconda用来启动环境的激活脚本,但我不太确定这是标准做法还是有更简单的方法来实现这一点。

+0

的可能的复制[创建康达后激活脚本(https://stackoverflow.com/questions/34606196/create-a-post-activate-script-in-conda) – darthbith

回答

2

您可以通过编辑activate.d/env_vars.sh脚本来激活环境时设置环境变量。在这里看到:https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux

从该链接的关键部分是:

  1. 找到为畅达环境的目录在终端 窗口,如/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. 编辑./etc/conda/activate.d/env_vars.sh如下:

    #!/bin/sh 
    
    export MY_KEY='secret-key-value' 
    export MY_FILE=/path/to/my/file/ 
    
  4. 编辑./etc/conda/deactivate.d/env_vars.sh如下::

    #!/bin/sh 
    
    unset MY_KEY 
    unset MY_FILE 
    

当您运行source activate analytics时,变量MY_KEY和MY_FILE的环境变量 被设置为您写入 该文件的值。当您运行source deactivate时,这些变量是 已擦除。

+1

正是我一直在寻找对于。谢谢。自从我向LD_LIBRARY_PATH添加一些内容后,只做了小改动,我无法使用未设置。相反,我会在停用脚本中输出LD_LIBRARY_PATH = $ {LD_LIBRARY_PATH /'PATH_I_ADDED' /“”}' – FlyingTeller