Python 如何释放(ana)conda占用的磁盘空间?
我正在使用康达软件包管理器-很多。到目前为止,我有相当多的环境和大量下载的软件包,占用了我SSD上的大量空间。释放部分空间的一个明显途径是使用命令Python 如何释放(ana)conda占用的磁盘空间?,python,anaconda,conda,Python,Anaconda,Conda,我正在使用康达软件包管理器-很多。到目前为止,我有相当多的环境和大量下载的软件包,占用了我SSD上的大量空间。释放部分空间的一个明显途径是使用命令 conda env export > environment.yml 从导出旧的非活动项目使用的包(d),然后删除这些环境。据我所知,这应该会在anaconda2/envs/中释放一些空间,但在anaconda2/pkgs/中不会。我该如何处理这些包裹?另外,我怀疑可能有相当多的包仍然存在,没有环境链接到这些包——这会发生吗 问题: 一般来说
conda env export > environment.yml
从导出旧的非活动项目使用的包(d),然后删除这些环境。据我所知,这应该会在anaconda2/envs/
中释放一些空间,但在anaconda2/pkgs/
中不会。我该如何处理这些包裹?另外,我怀疑可能有相当多的包仍然存在,没有环境链接到这些包——这会发生吗
问题:
您可以通过以下方式释放一些空间:
conda clean --all
clean
删除未使用的包和缓存
康达已在可能的情况下为软件包使用符号链接。所以,我想在这方面没有多少改进
好的,谢谢,但我想知道“不是针对特定环境,而是针对一般环境”——针对所有环境 您可以使用几行Python列出所有环境中的所有包:
import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
subprocess.call(['conda', 'list', '-n', env])
最后,我开始着手处理这个问题。最后是几天的工作:
conda env export>environment.yml
从anaconda clean
,并将创建的备份放在保存位置anaconda2
目录重命名为anaconda2\u备份
miniconda3
environment.yml
s构建当前项目所需的新环境,并检查这些环境是否工作这样我就可以释放20到30 GB的空间。我用
conda clean--dry run--all
进行了尝试。超过3GB的数据将被删除-还不错。但是,它列出了我最近安装并积极使用的软件包。这让我困惑:当.tar.bz2
即将被删除时,这意味着什么?这些只是下载而不是安装吗?或者可能是一些旧的东西,我从来没有安装过一个版本(而且我忘了)?.tar.bz2
只是一个下载,它被缓存起来,以备可能的第二次安装。它们被称为柏油球。只要有人在使用,安装就会一直保留。好的,谢谢,但我想知道“不是针对特定环境,而是针对一般环境”-适用于所有环境。请在我的答案中添加一个解决方案。顺便说一句,如果答案能解决你的问题,你可以接受是否对命令conda clean--all做了一些更改?这些天我再次尝试使用它,它可靠地清理了所有没有被任何软件包使用的软件包。我不太理解这里的要点。上面建议的conda clean--all
不适用于单个环境,它适用于所有环境。你能解释一下你在这里实现了什么,而不是通过conda clean--all
实现的吗。并不是说它需要30秒而不是几天!它不会自动删除您不再需要的环境,但阅读您的问题时,它是关于删除未被任何环境使用的包,而不是关于您不再使用的环境。@ARoebel:提示当时的clean--all
对我不起作用:当时清理的太少,而对于当前版本,它清理的更多。这就是为什么当时,我接受我自己的答案作为解决方案,后来改为迈克·穆勒的答案。此外,我还有一个问题,就是我有很多休眠项目的环境,我必须对这些环境进行备份和删除。(也许这才是真正的问题,但我无法重现。)