如果我删除一个 conda 环境,它会自动删除所有包吗?

If I remove a conda environment will it automatically remove all packages?

我认为很明显在删除环境时应该卸载所有包,否则如何访问它们,但我没有看到文档这样说,所以我在这里检查是否所有包都需要首先被删除。

conda 环境将被删除。有时一些包会留下来,尽管它们没有绑定到任何环境。您可以在下面删除这些 <your anaconda folder> -> envs -> <the env you deleted>.

让我们更具体一点,删除位于 anaconda3/envs/foo

的环境 foo
conda env remove -n foo

这通常会删除 anaconda3/envs/foo 下的所有内容。

PyPI 包可能会保留下来。如果你以前在环境中使用过 pip install,它偶尔会留下一些残留的东西。如果是这种情况,您需要在 conda env remove 之后手动删除 anaconda3/envs/foo 文件夹。或者您可以先尝试 pip uninstall 任何 PyPI 包 1,以获得干净的 conda env remove 结果。

Conda 还会缓存所有包,无论它们当前是否正在使用。这将在 anaconda3/pkgs 下(通常)。要另外删除不再使用的包,可以使用

conda clean -tp  # delete tarballs and unused packages

1:.[ 中有一个命令以编程方式从 Conda 环境中删除所有 PyPI 安装的包=21=]