如何释放 (ana)conda 占用的磁盘 space?

How to free disk space taken up by (ana)conda?

我经常使用 conda 包管理器。到目前为止,我有相当多的环境和大量下载的软件包在我的 SSD 上占用了大量 space。释放其中一些 space 的明显途径是使用命令

conda env export > environment.yml

https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file 导出我的旧的、不活动的项目使用的包(d),然后删除这些环境。据我了解,这应该会释放 anaconda2/envs/ 中的一些 space,但不会释放 anaconda2/pkgs/ 中的一些 space。我如何摆脱这些包裹?另外,我怀疑可能还有很多软件包仍然存在,没有环境链接到它们 - 会发生这种情况吗?

问题:

  1. 总的来说:减少 conda 占用的 space 的最佳方法是什么?
  2. 如何删除没有环境再使用的包?如何修剪我的包裹?我正在从 Ubuntu/Debian.
  3. 中搜索类似 sudo apt-get autoremove 的内容

您可以通过以下方式释放一些 space:

conda clean --all

clean Remove unused packages and caches.

Conda 已经在可能的情况下对包使用了符号链接。所以,我想这里没什么可改进的。

Ok, thanks, but I would like to know "not for a specific environment, but in general" - for all environments.

你可以用几行 Python:

列出所有环境中的所有包
import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
    subprocess.call(['conda', 'list', '-n', env])

我终于解决了这个问题。最后是几天的工作:

  1. 对于我所有的 Python 项目,我使用 PyCharm 并使用它检查哪个项目使用哪个环境。对于所有环境,我使用 conda env export > environment.ymlhttps://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-the-environment-file
  2. 保存环境设置
  3. 检查我的项目是否仍然适用于从 environment.yml 创建的新环境。
  4. 使用 https://docs.anaconda.com/anaconda/install/uninstall 选项 B 中的 anaconda-clean 并将创建的备份放在保存位置。
  5. 将旧的 anaconda2 目录重命名为 anaconda2_backup
  6. 安装新的 conda 环境 - miniconda3 在我的例子中。
  7. environment.yml 开始构建当前项目所需的新环境,并检查这些环境是否有效。
  8. 删除旧的 anaconda 备份。

最后,我还使用 https://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/ 减少了我的逻辑卷,但这仅适用于使用 LVM 的 Linux 用户。

这样我就可以释放 20 到 30 GB 的 space。