conda虚拟环境占用空间太多,如何清理?

家里使用了设备中,给linux分配了500G空间,前段时间发现空间所剩无几,只有几十G,经过排查,发现占用最多的来自两个方面,一个是docker,占用了200G以上,一个是conda,也占用了100G以上。

其中docker的清理之前已经总结过了:

如何清理 Docker 占用的巨大磁盘空间

Docker 中删除镜像与容器的完整指南

对于conda,下面我总结了一套我自己常用的排查和清理流程,希望能帮你把那些吃灰的环境处理干净。


一、查看当前 Conda 环境列表

最基础的一步,看看你到底有多少个环境:

复制代码
conda env list

或者简写:

复制代码
conda info --envs

输出类似这样:

复制代码
# conda environments:
#
base                  *  /home/young/program/anaconda3
pywen-env                /home/young/program/anaconda3/envs/pywen-env
torch2                   /home/young/program/anaconda3/envs/torch2
cv-dev                   /home/young/program/anaconda3/envs/cv-dev
tf-old                   /home/young/program/anaconda3/envs/tf-old
...

这只是名字列表,但你马上会发现有一堆项目早已不在维护。


二、统计每个环境占用的空间大小

遗憾的是,Conda 本身并不提供查看环境体积的命令,但其实每个环境就是一个目录,你可以直接用 du 命令统计。

例如:

bash 复制代码
du -sh /media/young/opt/envs/*

输出可能是这样的:

bash 复制代码
198M	/media/young/opt/envs/douban
6.8G	/media/young/opt/envs/fish-speech
7.0G	/media/young/opt/envs/fish-speech-1.5
7.1G	/media/young/opt/envs/fish-speech-1.5.1
7.0G	/media/young/opt/envs/funasr

如果你想排序看看哪些环境最肥,可以:

复制代码
du -sh ~/program/anaconda3/envs/* | sort -h

这会按从小到大的顺序列出所有环境的大小,非常直观。

我一般一看就知道哪些可以直接动刀------比如fish-speech 环境有好几个,大概率是不用的,直接清理就好了。


三、快速统计总空间占用

你也可以看看整个 envs 目录到底占了多少:

bash 复制代码
du -sh ~/program/anaconda3/envs/

四、删除不再需要的环境

Conda 提供了标准删除命令:

复制代码
conda remove -n 环境名 --all

例如:

复制代码
conda remove -n tf-old --all

但有时候,你可能连环境名都忘了。别担心,你可以直接删除目录:

复制代码
rm -rf ~/program/anaconda3/envs/tf-old

这其实和上面效果一样,只不过跳过了 Conda 的内部清理逻辑。

如果你想稳妥点,还是推荐使用 conda remove


五、批量清理:找出大环境 + 不常用的环境

你可以组合几个命令,找出最值得删除的那几个环境:

复制代码
du -sh ~/program/anaconda3/envs/* | sort -hr | head -n 10

这会列出前 10 个最大的环境。

再结合 conda env list,看看哪些环境最近没动过(或项目早已结束),直接删除。


六、清理 Conda 缓存与包

除了环境目录,Conda 的包缓存也很占空间。

默认在:

复制代码
~/.conda/pkgs

你可以用以下命令安全清理未使用的包:

复制代码
conda clean --all

这一步能节省几百 MB 到几 GB 不等的空间(取决于你重建环境的频率)。

如果想更精细一点:

复制代码
conda clean --tarballs --packages --yes

基本上这些操作之后,就可以清理干净了。

相关推荐
be_humble4 小时前
conda 环境配置
conda
悢七4 小时前
windows npm打包无问题,但linux npm打包后部分样式缺失
linux·前端·npm
The Chosen One9854 小时前
【Linux】Linux下基本指令:man echo cp mv move less date grep zip tar 指令以及指令的本质
linux·运维·服务器
退役小学生呀5 小时前
二十二、DevOps:基于Tekton的云原生平台落地(三)
linux·云原生·容器·kubernetes·k8s·devops·tekton
君以思为故5 小时前
认识linux -- 编辑器vim以及编译器gcc/g++和Makefile文件
linux·编辑器·vim
王道长服务器 | 亚马逊云5 小时前
AWS + Discuz!:社区站架构的现代化玩法
linux·网络·云计算·智能路由器·aws
lht6319356126 小时前
部署开源漏洞扫描工具SiriusScan及问题解决
linux·安全·开源
笨蛋少年派6 小时前
*清理磁盘空间
linux·运维·服务器
我搞slam6 小时前
有效的括号--leetcode
linux·算法·leetcode