跳到主要内容

这里是 Mole Mac 官网,要去 Windows 版官网吗?

前往 Windows 版
Mole
MacWindows
功能 实测 口碑 定价 常见问题 博客
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES PortuguêsPT NederlandsNL
购买 下载

    帮助、文档、更新日志和文章

    博客

    删了 conda 环境 Mac 空间没回来怎么办

    开发者清理发布于 2026 年 11 月 4 日更新于 2026 年 11 月 5 日约 5 分钟

    做几个月数据分析,Mac 上就会攒下一堆想不起来是什么时候建的 conda 环境,一门课一个,一篇论文一个,试过一次的工具又一个。每个环境都有自己的一份 Python 和包,加上 conda 的包缓存,加起来常常有几十 GB。删掉它们只要两条命令,但第一条跑完空间往往没怎么回来,原因在 conda 怎么在环境之间共用文件。

    这篇讲怎么列出现有环境、按名字或路径删掉一个环境、为什么删完磁盘数字几乎没动,以及怎样用 conda clean 把剩下的空间拿回来,Anaconda、Miniconda、Miniforge 和 Mambaforge 都适用。如果是想把 conda 整个卸掉,在 Mac 上卸载 Python 和 Node 那篇讲了。

    列出你的环境

    conda env list
    

    conda info --envs 给出的是同一份列表,当前激活的环境前面有个星号,每一行是它的文件夹,一般在 ~/miniconda3/envs/<name> 或 ~/anaconda3/envs/<name>。没有名字的那一行是 base,conda 自己就装在里面,别动它。

    看每个环境占多少:

    conda info --size
    

    它报的是 conda 自己统计的各环境占用,如果你的 conda 版本没有这个参数,就直接量文件夹:

    du -sh ~/miniconda3/envs/* ~/miniconda3/pkgs
    

    把 miniconda3 换成 anaconda3、miniforge3 或 mambaforge,和你装的那个对上。

    删之前先存一份

    以后可能还要用的环境,留一个小文件就够了,先激活再导出:

    conda activate myenv
    conda env export --from-history > myenv.yml
    

    --from-history 只写你当初明确装过的包,换一台 Mac 或者换个新版本 conda 也能重建。想在同一平台上一模一样地还原,就用 conda list --explicit > myenv-spec.txt。以后用 conda create --file myenv.yml 就能把环境建回来,旧版本用 conda env create --file myenv.yml。

    删掉一个环境

    conda 文档写明删除时这个环境不能是激活状态,所以先退出来:

    conda deactivate
    conda remove --name myenv --all
    

    conda env remove --name myenv 效果一样,加上 --dry-run 可以先看会删掉什么,不真删。

    用 --prefix 建在 envs 之外的环境,比如建在某个项目文件夹里的,conda 没有名字可查,要按路径删:

    conda remove --prefix ~/projects/thesis/.env --all
    

    在访达里把环境文件夹移到废纸篓也能释放同样的文件,但用命令更干净,它会顺带更新 conda 自己的环境记录,conda env list 和 conda clean 都读这份记录。

    为什么空间没回来

    conda 每个包只下载一次,放进安装目录下的包缓存 pkgs,再用硬链接把这些文件链进每一个用到它的环境,conda 文档自己的说法是,多亏硬链接,环境本身几乎不占空间。硬链接是同一份磁盘数据的另一个名字,只要还有一个名字在,数据就还在。

    删环境删掉的只是它那些名字,pkgs 里那份还在,所以对安装目录跑 du,数字和之前差不多。缓存里还留着下载下来的 .conda 和 .tar.bz2 压缩包,以及频道索引文件,包装好以后这些都没有环境再需要。

    用 conda clean 拿回剩下的

    先预览:

    conda clean --all --dry-run
    

    再真正执行:

    conda clean --all
    
    参数 删掉什么
    -i, --index-cache 下载的频道索引文件,conda 下次会重新获取
    -t, --tarballs 已经解压进缓存的包压缩文件
    -p, --packages 没有任何环境链接的已解压包
    -c, --tempfiles 残留的临时文件
    -l, --logfiles 日志文件
    -a, --all 以上全部

    用 -p 之前值得看一眼 conda 文档里的提醒,它只检查 conda info --envs 列出来的环境,conda 不知道的环境,比如另一套 conda 建的、或者登记在别的用户名下的,可能会丢掉它还在链接的包。如果你有环境放在不寻常的位置,先跑一次 conda env list,确认它们都在列表里。

    --force-pkgs-dirs 别碰,它会删掉所有可写的包缓存,刻意没放进 --all,会弄坏依赖这些文件的环境。

    mamba 和多套安装

    mamba 接受同样的命令,mamba env list、mamba remove --name myenv --all、mamba clean --all 都能用。如果装过不止一套,比如几年前的 Anaconda 加上现在的 Miniforge,每套都有自己的 envs 和 pkgs,要用各自的 conda 分别清,或者先在访达里把两个文件夹都看一眼,再判断空间去了哪。shell 里设了 CONDA_PKGS_DIRS 和 CONDA_ENVS_PATH 的话,这两个文件夹会在别的位置。

    Mole 能帮什么

    Mole 的「清理」会在你的个人文件夹里找 conda 安装(~/miniconda3、~/anaconda3、~/miniforge3、~/mambaforge,以及 ~/opt 下的两个),只认真正有 conda-meta 和 pkgs 文件夹的那些。在开发工具里它会列出一组 Conda Cache,有两类行,一类是 pkgs 里已经解压到位、一天内没被动过的包压缩文件,另一类是 pkgs/cache 索引文件夹,也就是 conda clean --index-cache 会删的那个。每一行都标着需确认,默认不勾选。Mole 不碰已解压的包和环境,也不运行 conda,你勾选的内容会移到废纸篓,删环境本身还是交给 conda remove。其他开发缓存可以看清理 Mac 上的开发缓存,Xcode、npm 这些都在里面。

    常见问题

    能手动删掉 pkgs 文件夹吗?

    不要整个删。环境是硬链接到里面的文件的,conda 也要在那里找自己的记录,用 conda clean --all,它只删没有环境需要的部分。

    删掉环境会删掉我的笔记本和数据吗?

    只删环境文件夹里的文件,项目文件夹里的笔记本、脚本和数据都还在,除非你用 --prefix 把环境建在项目里面,又把数据放在了同一个文件夹。

    能删掉 base 环境吗?

    不能,conda 自己就在 base 里。想全部清掉就卸载 conda,卸载 Python 和 Node 那篇讲了。

    conda clean --all 会让下次安装变慢吗?

    会慢一点,conda 要重新下载索引,缓存里没有的包也要再下一次,现有的环境照常能用。

    Xcode、Docker 和各种包管理器越用越占空间,可以用 Mole 清理能重新生成的开发缓存,再用分析找出剩下的大文件。

    下载试用 Mole

    继续阅读

    • 开发者清理如何清理开发工具缓存,又不破坏构建约 5 分钟
    • 开发者清理在 Mac 上清理 VS Code 缓存,保留设置和扩展约 8 分钟
    • 开发者清理Cursor 占用 CPU 和内存过高怎么解决约 7 分钟

    Mole · 鼹

    让你的 Mac 干净轻快

    v1.20.0 (369) · 更新日志

    产品

    Mac 清理 App 卸载 Mac 优化 磁盘分析 系统监控

    支持

    帮助 功能文档 更新日志 博客

    法律

    服务条款 隐私政策 退款政策

    资源

    Windows 版 命令行工具 存储价格换算 推广联盟

    联系

    Twitter hi@mole.fit

    Mole 唯一官网 mole.fit,请勿下载来源不明的安装包

    命令行版继续免费开源。