我创建了一个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文件中它不起作用??
欢迎任何提示