sun*_*ess 8 python environment anaconda conda
我在不同的项目中使用了一些 conda 环境,例如:
我在自己的目录中组织了本地项目:
每次我cd到一个特定的项目时,我已经知道我想使用哪个环境。conda activate [some env]所以我每次更改目录时都会这样做。我觉得一定有更好的方法。
自动化这个过程的干净方法是什么?
或者我使用 conda 环境是错误的?
我制作了一个类似于 Corey Chafer 的脚本,但这个脚本扩展了 cd 命令。
cd() { builtin cd "$@" &&
if [ -f $PWD/.conda_config ]; then
export CONDACONFIGDIR=$PWD
conda activate $(cat .conda_config)
elif [ "$CONDACONFIGDIR" ]; then
if [[ $PWD != *"$CONDACONFIGDIR"* ]]; then
export CONDACONFIGDIR=""
conda deactivate
fi
fi }
Run Code Online (Sandbox Code Playgroud)
将这几行代码放在 shell 配置文件的底部,然后在要为其激活环境的目录中创建一个 .conda_config 文件。.conda_config 文件必须仅包含环境名称。
这样,每次您 cd 进入具有 .conda_config 文件的目录时,脚本都会激活 env,而每次 cd 退出时,它都会停用。
我创建了一个存储库以供参考Conda-autoactivate-env
编辑:
情况中有一个错误elif。
基本上[-n $CONDACONFIGDIR]总是返回True,它的逻辑实际上是倒退的。
解决方法是:
引用变量(或使用双方括号)并删除 -n
[ "$CONDACONFIGDIR" ]OR [[ $CONDACONFIGDIR ]]。
上面的代码已经是最新的了!