还原 Anaconda 到首次安装时的状态

4

我创建了两个环境在Users/user/conda/envs,现在不再需要了。我发现在Users/user/conda下也有pkgs文件夹,这两个路径Users/user/conda/envsUsers/user/conda/pkgs都占用了大量存储空间。我想要删除这两个环境。

  1. conda remove -n env_name --all命令可以删除该环境及其下所有已安装的包吗?还是只会删除该环境?

  2. 我能直接从Users/user目录下删除pkgsenv文件夹而不影响base环境吗?

  3. 如何将Anaconda恢复到初始状态(仅包含base环境和默认包)?

或者我需要卸载并重新安装Anaconda吗?

1个回答

5

具体答案

  1. conda remove -n env_name --all会删除环境my_env,包括解压的库和env/env_name目录。但它不会删除conda/pkgs目录下的缓存tarballs。
  1. 可以直接从“Users/user”中删除文件夹pkgsenv,而不影响基本环境。

但是,请注意,如果正在使用软链接(符号链接),删除pkgs目录可能会破坏环境。可以使用以下命令检查软链接是否启用:

conda config --show allow_softlinks always_softlink

虽然这不能告诉我们是否有任何包被使用。

此外,Conda包可以包含pre-unlink脚本,其中可能包含期望在软件包删除过程中进行评估的代码。直接删除环境将忽略此类协议并可能导致空引用。

通常,我建议使用CLI中可用的命令,而不是删除文件夹。如果您想要删除环境,则应使用(1)中的命令。如果您想要删除缓存的软件包,应使用conda clean(使用--help标志查看可用选项)。

  1. 如何将Anaconda还原为安装时的状态(只包含base环境和默认软件包)?

同样,您可以使用conda remove --all删除其他环境。对于base,您可以使用以下命令将其恢复到原始状态。

conda install -n base --revision 0

然而,我需要指出的是,很多用户反映这种方法不起作用,或者如果他们回退得太远,会遇到问题。相反,可以使用 conda list --revisions 查看修订历史记录,并选择删除不需要的部分的状态。

一般建议

Miniforge

既然您似乎想要彻底卸载 Anaconda 并重新开始,我建议完全卸载 Anaconda。但是,如果您主要关心空间而不是重新安装 Anaconda,请考虑切换到 Miniforge 变体,它仅包括 Conda 包管理器和支持它的最小基础架构。然后创建只包括您实际需要的软件包的环境。您仍然可以使用 conda clean --tarballs 来最小化缓存下载,但是只要使用了 Miniforge,比完整的 Anaconda 分发版,您的脚印应该已经小得多了。

管理环境

作为一般的经验法则,我建议仅在安装 Conda 基础结构(例如 condamambaconda-buildboa)时使用 base,并为您需要的特定软件包环境使用单独的环境(例如 TensorFlow、PyTorch)。根据我的经验,这有助于使您的 base 更加稳定,并允许您通过在不再需要它们时清除环境来分隔潜在的软件包冲突和封装特定的项目。


1
非常好的答案,正是我所需要的。使用conda clean -tp命令,我们也可以删除tarballs和未使用的软件包,是吗?非常感谢您简明扼要的回答! - Reza Habibi
@RezaHabibi 是的,但请注意帮助文本中的警告信息。我不想直接在答案中放置那些可能会出现问题的命令,因为我尽量避免发布可以简单复制和粘贴的命令。我要说的是,在我之前的笔记本电脑上,我安装了Anaconda几年,偶尔运行也没有问题。 - merv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接