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

时间:2018-02-09 13:04:23

标签: python anaconda 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

2 个答案:

答案 0 :(得分:47)

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

conda clean --all
  

clean删除未使用的包和缓存。

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

  

好的,谢谢,但我想知道“不是针对特定环境,而是针对所有环境”。

您可以使用几行Python列出所有env中的所有包:

import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
    subprocess.call(['conda', 'list', '-n', env])

答案 1 :(得分:0)

最后,我解决了这个问题。最后花了几天的时间:

  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. 检查我的项目是否仍然可以使用由environment.yml创建的新环境。
  3. 使用https://docs.anaconda.com/anaconda/install/uninstall中选项B的anaconda-clean,并将创建的备份放置在保存位置。
  4. 将旧的anaconda2目录重命名为anaconda2_backup
  5. 安装新的conda环境-就我而言为miniconda3
  6. environment.yml开始构建当前项目所需的新环境,并检查其是否有效。
  7. 删除旧的anaconda备份。

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

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