conda:从基本/根环境中删除所有已安装的软件包

2024-03-20

TL:DR: 如何删除所有已安装的软件包base?

我在我的计算机中安装了一堆机器学习包base康达环境。

我现在创建了一个ml机器学习环境,并希望重置我的base环境,删除安装在那里的所有软件包。

我试过了:

% activate base
% conda uninstall -n base --all

CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again

显然,我无法从当前环境中删除软件包(?!),所以让我们切换到我的ml环境第一:

% source activate ml
% conda uninstall -n base --all

CondaEnvironmentError: cannot remove root environment,
       add -n NAME or -p PREFIX option

好吧,我会用-p then...

% conda uninstall -p ~/.local/share/miniconda3 --all

CondaEnvironmentError: cannot remove root environment,
       add -n NAME or -p PREFIX option

如何卸载所有已安装的软件包base or root环境?


显然,我无法从当前环境中删除包(?!)

不是这样,而是你无法删除base环境,这就是--allflag 在这种情况下就可以了。你无法卸载all包在base因为那是conda可执行的生命。相反,您可能想要做的是卸载所有用户安装的软件包。

完全恢复(不推荐)

执行此操作的一种方法是将您的环境恢复到安装任何其他软件包之前的原始状态:

# Not generally recommended!
conda install --revision 0

请注意多个用户报告这破坏了他们的 Conda 安装。我绝对不会在您已经安装了很长时间或进行了多次修订的安装上运行它。这并不是说修订版“0”本质上是不好的,而是恢复得太早可能是不好的。也就是说,修订版“1”、“2”等也可能非常旧并导致完全相同的问题。

最重要的是:始终审查拟议的交易 base env!这就是 Conda 生活的地方,不幸的是,防止破坏安装的保护措施并不全面。

如果你真的想要一个干净的开始,那么将你的环境导出到 YAML 并重新安装一个新的 Miniconda。

部分恢复

您还可以查找其他以前的状态,这些状态可能不会出现回归,但仍然可以删除您认为不必要积累的任何包。

conda list -n base -r

最后,您可能想要升级conda之后,因为它还会恢复对基础包的任何更新。


错误,天啊!

虽然上面是正确的恢复方法,但我遇到了错误:

CondaRevisionError:无法恢复为 0,因为 ::contextlib2-0.5.3-py35_0 不在 repodata 中。

顺便说一句,这让我有些担心,因为它似乎表明两年前我的 Conda 环境的状态不再能够从上游通道的状态重现。

在这种情况下,除了将所有修订版 0 软件包与当前安装进行比较然后卸载差异之外,我不知道解决此问题的干净方法。但同样,全新安装 Miniconda 似乎是一个更好的解决方案。

一般来说,我发现将环境视为不可变并尽可能少地安装base是使用 Conda 最安全、最可靠的方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

conda:从基本/根环境中删除所有已安装的软件包 的相关文章

随机推荐