如何释放被(ana) conda 占用的磁盘空间?

我正在使用 conda 软件包管理器-很多。到目前为止,我有相当多的环境和许多下载的软件包占用了我的 SSD 上很大的空间。释放部分空间的一个显而易见的方法是使用该命令

conda env export > environment.yml

https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file导出我的老的、不活动的项目使用的包(d) ,然后删除这些环境。据我所知,这应该会释放 anaconda2/envs/中的一些空间,但是在 anaconda2/pkgs/中不会。我怎么处理这些包裹?此外,我怀疑可能还有相当多的软件包仍然闲置着,没有任何环境链接到它们——这种情况会发生吗?

问题:

  1. 一般来说: 减少 Conda 占用空间的最好方法是什么?
  2. 我如何摆脱没有环境再使用的软件包?我如何修剪我的包?我正在从 Ubuntu/Debian 中搜索类似 sudo apt-get autoremove的东西。
113204 次浏览

你可以腾出一些空间:

conda clean --all

删除未使用的包和缓存。

Conda 已经在可能的情况下对包使用了符号链接。

好的,谢谢,但是我想知道“不是针对特定的环境,而是一般情况下”——针对所有的环境。

您可以用几行 Python 代码列出所有 envs 中的所有包:

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. 检查我的项目是否仍然可以处理由 Environmental. yml 创建的新环境。
  3. Use anaconda-clean from option B in https://docs.anaconda.com/anaconda/install/uninstall and put the created backup in a save place.
  4. 将旧的 anaconda2目录重命名为 anaconda2_backup
  5. 安装一个新的 conda 环境-在我的例子中是 miniconda3
  6. environment.yml构建当前项目所需的新环境,并检查这些环境是否有效。
  7. 删除旧的蟒蛇备份。

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

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