停用conda环境时如何从PATH中删除目录

时间:2018-11-07 10:00:26

标签: bash shell environment-variables anaconda conda

我创建了一个conda环境,并在该环境中安装了一个名为minibcoder的工具,该工具由我以外的其他人开发。 https://github.com/asrivathsan/miniBarcoder

该工具主要是一组脚本(python或shell)。为了易于使用,我将工具的所有脚本都移到了conda环境的bin文件夹中。

但是,bin文件夹中的miniBarcoder脚本取决于文件夹scripts中其他脚本的集合。我也将该文件夹移到了bin文件夹。

文件夹scripts包含一些脚本,我想在使用环境时将它们添加到我的$PATH变量中,当我关闭环境时,我想在停用时从PATH变量中删除这些脚本环境。

按照conda手册的指示 (https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux) ,我可以使用位于文件夹中的环境文件将脚本文件夹添加到我的PATH中:

  

/work/projects/nn9305k/src/anaconda/envs/minibarcoder/etc/conda/activate.d

文件env_vars.sh包含:

#!/bin/sh

#add scripts folder to PATH
export PATH=$PATH:/work/projects/nn9305k/src/anaconda/envs/minibarcoder/bin/scripts

激活环境时,会将文件夹添加到PATH变量。

现在,我的问题是在停用环境时如何从PATH变量中删除此文件夹。

为此,我在文件夹中创建文件env_vars.sh

  

/work/projects/nn9305k/src/anaconda/envs/minibarcoder/etc/conda/deactivate.d

我尝试了以下方法:

    #!/bin/sh

#remove scripts from PATH
export PATH=$(echo ${PATH%:/work/projects/nn9305k/src/anaconda/envs/minibarcoder/bin/scripts

这不会从PATH变量中删除目录,但是当我在命令行上运行该命令时,确实从PATH变量中删除了该目录。为什么在我的env_vars.sh文件中它不起作用??

欢迎任何提示

0 个答案:

没有答案