Python 工具链

pip / Conda / uv 缓存与虚拟环境:Python 项目里的隐形占用

Python 生态为了加速安装会在多处缓存包和环境。时间一长,pip/Conda/uv 缓存与历史虚拟环境会悄悄吃掉大量 SSD。

更新于:

阅读时长: 7 分钟

为什么会悄悄变大

包下载、wheel 解包和环境构建结果都会被保留来换取后续速度。在多项目并行和频繁试验场景下,相同依赖常常在多个路径重复存在,而旧环境即使项目归档后也会继续占空间。

Free Mac Space 如何定位

Free Mac Space 会聚合扫描 ~/.cache/pip、~/Library/Caches/pip、~/miniconda3/pkgs、~/anaconda3/pkgs、~/.conda/pkgs、~/.cache/uv 与 ~/.local/share/uv 等目录,并按路径族展示,帮助你快速判断主要占用来自缓存还是环境目录。

Free Mac Space 如何帮助清理

你可以先按体积、路径和最近修改时间筛选,再清理陈旧缓存目录。所有可执行动作仍遵循回收站优先与根路径校验,只对允许路径生效。

安全边界

虚拟环境可能仍被定时任务、旧服务或 Notebook 使用。建议保留生产链路相关环境,分批清理历史遗留目录。

Free Mac Space 扫描路径

  • ~/.cache/pip
  • ~/Library/Caches/pip
  • ~/miniconda3/pkgs
  • ~/anaconda3/pkgs
  • ~/.conda/pkgs
  • ~/.cache/uv
  • ~/.local/share/uv
  • ~/.virtualenvs

建议的月度检查步骤

  • 先按体积清理长期未使用的包缓存。
  • 保留仍在运行的服务和 Notebook 对应环境。
  • 清理后复扫,确认回收量并避免过度清理。

操作步骤(HowTo)

  1. 1. 识别 Python 工具链 的增长来源

    包下载、wheel 解包和环境构建结果都会被保留来换取后续速度。在多项目并行和频繁试验场景下,相同依赖常常在多个路径重复存在,而旧环境即使项目归档后也会继续占空间。

  2. 2. 确认扫描覆盖路径

    Free Mac Space 会聚合扫描 ~/.cache/pip、~/Library/Caches/pip、~/miniconda3/pkgs、~/anaconda3/pkgs、~/.conda/pkgs、~/.cache/uv 与 ~/.local/share/uv 等目录,并按路径族展示,帮助你快速判断主要占用来自缓存还是环境目录。 重点路径:~/.cache/pip、~/Library/Caches/pip、~/miniconda3/pkgs、~/anaconda3/pkgs、~/.conda/pkgs、~/.cache/uv、~/.local/share/uv、~/.virtualenvs。

  3. 3. 先看安全边界再执行动作

    虚拟环境可能仍被定时任务、旧服务或 Notebook 使用。建议保留生产链路相关环境,分批清理历史遗留目录。

  4. 4. 按先审查后清理流程执行

    你可以先按体积、路径和最近修改时间筛选,再清理陈旧缓存目录。所有可执行动作仍遵循回收站优先与根路径校验,只对允许路径生效。

  5. 5. 复核动作 1

    先按体积清理长期未使用的包缓存。

  6. 6. 复核动作 2

    保留仍在运行的服务和 Notebook 对应环境。

  7. 7. 复核动作 3

    清理后复扫,确认回收量并避免过度清理。

常见问题

  • Python 工具链 这类占用通常来自哪里?

    主要来源包括:pip wheel 缓存、Conda 包缓存、uv 缓存、虚拟环境目录。包下载、wheel 解包和环境构建结果都会被保留来换取后续速度。在多项目并行和频繁试验场景下,相同依赖常常在多个路径重复存在,而旧环境即使项目归档后也会继续占空间。

  • 这篇文章建议重点查看哪些路径?

    建议优先检查这些路径:~/.cache/pip、~/Library/Caches/pip、~/miniconda3/pkgs、~/anaconda3/pkgs、~/.conda/pkgs、~/.cache/uv、~/.local/share/uv、~/.virtualenvs。Free Mac Space 会聚合扫描 ~/.cache/pip、~/Library/Caches/pip、~/miniconda3/pkgs、~/anaconda3/pkgs、~/.conda/pkgs、~/.cache/uv 与 ~/.local/share/uv 等目录,并按路径族展示,帮助你快速判断主要占用来自缓存还是环境目录。

  • 如何在不增加误删风险的前提下处理?

    你可以先按体积、路径和最近修改时间筛选,再清理陈旧缓存目录。所有可执行动作仍遵循回收站优先与根路径校验,只对允许路径生效。 虚拟环境可能仍被定时任务、旧服务或 Notebook 使用。建议保留生产链路相关环境,分批清理历史遗留目录。

  • 月度复查时应该怎么执行?

    先按体积清理长期未使用的包缓存。;保留仍在运行的服务和 Notebook 对应环境。;清理后复扫,确认回收量并避免过度清理。

继续执行对应方案

如果你已完成阅读,可直接进入「npm / pnpm / Yarn / Bun 缓存清理」按步骤执行。

查看对应场景方案

更多隐蔽占用案例

Xcode

Xcode 的 DerivedData 和 DeviceSupport:最常见的隐藏巨头

Xcode 会在构建产物和模拟器/设备支持文件里悄悄累积几十 GB。本文讲清楚它为什么膨胀,以及如何在不影响当前项目的前提下清理。

阅读文章

Docker

Docker Desktop 虚拟磁盘:项目结束了,空间却还在涨

Docker 镜像层、构建缓存和 VM 磁盘文件都在受管目录中,平时不容易在 Finder 里看清楚,但体积会增长得很快。

阅读文章

Homebrew

Homebrew 缓存目录:安装很快,历史缓存更快变大

Homebrew 会保留下载包和元数据缓存,版本升级后仍可能长期存在,是非常典型的“看不见但可安全处理”的空间来源。

阅读文章