为什么克隆的 conda 环境占用这么多 space?

Why is a cloned conda environment taking so much space?

所以,正如标题所暗示的那样

我有运行 conda --clone base --name newenv

完成后,我检查了我的 newenv 文件夹的大小,它是 3.78 GB。为什么它占用 space ?如果 conda 使用一些指向基础包的指针引用,而我没有安装任何新包,为什么它仍然占用 ~4GB? 这似乎是对 space 的毫无意义的使用。有什么办法可以减少这个吗? 谢谢

实际上,Conda 已经有点共享环境 spaces。但是,因为它利用了 hardlinks, it is easy to overestimate the space really being used. ()

无论如何,您的问题的答案可能在于 之间的差异。 Anaconda 约为 2GB,而 Miniconda 接近 100MB。

Anaconda 包含一长串软件包,这些软件包会自动安装到您创建的每个环境中。

Miniconda 创建准系统 conda 虚拟环境(根本不包含很多包)。切换到 Miniconda 应该会大大减少您环境中的 size/number 包。

Conda 还使用 hardlinks 来安装软件包而不是 conda install。可以找到 对 hardlinks 的一个很好的描述。它们基本上 link 跨多个环境的依赖性,就像您上面描述的那样。通过 pip 安装的软件包不是硬 linked,因此它们无法利用 conda 软件包提供的 space 节省。