我正在尝试通过 bash 脚本激活我的 conda env。即使脚本运行良好并且我的 PATH 似乎在脚本中发生了更改,但在脚本终止后它会以某种方式重置。我可以打电话source activate test
从 cmd 行,它工作正常。一个示例以及下面的输出。
脚本:
PycharmProjects/test » cat ./example.sh
echo "before calling source: $PATH"
source activate test
echo "after calling source: $PATH"
输出:
./example.sh
before calling source: /Use rs/me/miniconda3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
discarding /Users/me/miniconda3/bin from PATH
prepending /Users/me/miniconda3/envs/test/bin to PATH
after calling source: /Users/me/miniconda3/envs/test/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin`
但如果我
echo $PATH
脚本完成后,可以看到$PATH
没有改变(即没有 /Users/me/miniconda3/envs/test/bin
):PycharmProjects/test » echo $PATH /Users/me/miniconda3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
最佳答案
在最新版本的 conda (4.6+) 上,我注意到以下内容有效:
eval "$(conda shell.bash hook)"
conda activate <env-name>
关于macos - 从 bash 脚本调用 conda source activate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34534513/