pip缓存路径不一定在C盘,取决于PIP_CACHE_DIR环境变量和pip.ini配置;pip cache purge仅清理http/子目录,不删build/等;改PIP_CACHE_DIR到非系统盘并重启终端最可靠。

pip cache info 显示的缓存路径真的在C盘?
默认情况下,pip cache info 输出的 Cache directory 路径确实常落在 C 盘(比如 Windows 上是 C:\Users\<username>\AppData\Local\pip\Cache</username>),但不是绝对。它取决于 PIP_CACHE_DIR 环境变量是否被设置,以及系统级配置文件(如 %APPDATA%\pip\pip.ini)里有没有指定 global.cache-dir。
别光信 pip cache info 的“当前值”——先手动检查该路径是否存在、是否占了几十 GB;有时候缓存目录被重定向到 D 盘,但 pip 仍会往 C 盘写临时解压文件(尤其用 --no-cache-dir 时临时目录仍走系统 TMP)。
- 运行
pip cache info后,直接在资源管理器里粘贴那个路径,看能不能打开 - 如果打不开,说明路径无效或被重定向,此时要查
echo %PIP_CACHE_DIR%和pip config debug - 注意:
%TEMP%和%TMP%也常被 pip 用于解包,它们默认也在 C 盘,清理前别漏掉
pip cache purge 不等于清空所有残留
pip cache purge 只删 pip cache info 指向的缓存目录里的 http/ 和 http/ 子目录,也就是下载的 wheel/tar.gz 文件和校验信息。但它不碰:build/(编译中间产物)、selfcheck/(版本检查缓存)、甚至某些旧版 pip 写入的 index/ 目录。
更关键的是:如果你用过 pip install --find-links 或私有源 + --trusted-host,部分缓存可能被写进非标准子目录,purge 压根不扫描。
立即学习“Python免费学习笔记(深入)”;
- 执行
pip cache purge后,再进缓存目录手动看一眼,ls -la或dir /a,确认http/下为空 - 想彻底清,直接删整个缓存目录(关掉所有 pip 进程后再删),比依赖
purge更可靠 - 删完记得跑一次
pip cache info,确认新路径没被意外指向 C 盘其他角落
怎么让 pip 默认不往 C 盘写缓存?
改环境变量最稳:PIP_CACHE_DIR 优先级高于配置文件,且对所有 pip 调用生效(包括 IDE 内置终端、CI 脚本)。设成 D 盘某路径后,连 pip cache info 都会立刻显示新位置。
Windows 上设法简单,但要注意:PowerShell 和 CMD 的语法不同,而且 VS Code 终端可能不自动继承新变量(需重启终端)。
- PowerShell:运行
$env:PIP_CACHE_DIR="D:\pip_cache"(仅当前会话);永久生效加到$PROFILE - CMD:用
setx PIP_CACHE_DIR "D:\pip_cache"(需重启终端) - 验证:新开终端,跑
echo %PIP_CACHE_DIR%和pip cache info,两个输出必须一致 - 警告:路径里不能有空格或中文,否则 pip 会静默失败回退到默认路径
pip install --no-cache-dir 真的省空间?
它只是跳过读写缓存,每次安装都重新下载 wheel 并解包到临时目录(%TEMP%),装完就删——看似不占持久空间,但下载+解压过程会瞬时占用数倍于 wheel 大小的 C 盘空间,尤其装 torch、tensorflow 这类大包时,%TEMP% 可能爆满导致安装中断。
真正省空间的做法是:保留缓存(避免重复下载),但把缓存挪到非系统盘 + 定期 pip cache info + du -sh 监控大小。
- 不要全局加
--no-cache-dir,除非你明确知道网络稳定、磁盘 IO 快、且只临时测试 - CI/CD 场景下才适合加,因为每次都是干净环境,缓存无意义
- 本地开发时,
--no-cache-dir实际增加 C 盘压力,而非缓解



















