【发布时间】:2026-01-14 18:25:02
【问题描述】:
我正在尝试编写一个包含停用和删除 conda 环境的 bash 脚本。这是一个例子,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
我认为这个问题与forking 有关 - 本质上,环境在一个进程中被停用,但随后删除调用在另一个进程中运行,该进程没有停用环境。但我不完全确定。
一些注意事项:
- 我不能使用
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
- 我在
~./bashrc中调用命令conda activate my_env - 我不能使用别名 - 它必须是 bash 脚本
【问题讨论】:
-
Deactivating an environment 上的手册没有帮助吗?看起来您应该在删除活动环境之前使用
conda activate(不带参数)激活默认环境。