我想写一个bash脚本,包括停用和删除conda环境。下面是一个例子。remove_env.sh
:
#!/bin/bash
# Get the conda command available in bash
eval "$(conda shell.bash hook)"
# Deactivate environment
conda deactivate
# Remove environment
conda remove --name my_env --all --yes
必须停用环境才能删除它。
遗憾的是,这行不通。我在终端机上执行这个操作。
$ conda activate my_env
$ ./remove_env.sh
CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again
我认为问题出在... 分叉 - 本质上,环境在一个进程中被停用,但在另一个进程中运行删除调用,而另一个进程并没有停用环境。但我不太确定。
一些注意事项。
source remove_env.sh
- 我一定要能用 ./remove_env.sh
#!/bin/bash
# Get the conda command available in bash
eval "$(conda shell.bash hook)"
# Deactivate and remove environment
conda deactivate && conda remove --name my_env --all --yes
conda activate my_env
在我 ~./bashrc
谢谢Jonathan在评论中给出的答案。你说的完全正确,我完全忽略了conda手册中的那个蓝色注释。我能够做到这一点。
#!/bin/bash
# Get the conda command available in bash
eval "$(conda shell.bash hook)"
# Activate the environment
conda activate my_env
# Deactivate environment
conda deactivate
# Remove environment
conda remove --name my_env --all --yes
我想不管你是否 conda activate
带或不带参数。
或者,使用Conda的 run
工具,可以避免手动激活。也就是说,类似于
#!/usr/bin/env conda run bash
conda env remove -n my_env -y