最安全推荐的方式是执行 pip cache purge,它会清空整个缓存目录但保留结构,避免报错;不建议手动删缓存文件夹,以防 pip 后台写入冲突或误删;该命令自 pip 20.1 起内置,不影响已安装包和虚拟环境。

直接执行 pip cache purge 就行
这是最安全、最推荐的方式,不需要手动找路径、也不用担心删错文件。命令会清空整个缓存目录,包括所有已下载的 .whl 和源码包,同时保留缓存结构本身(比如 wheels 子目录),避免后续 pip 报错。
执行后你会看到类似这样的输出:
Files removed: 1245 Cache size: 0 B
说明清理完成,并告诉你释放了多少空间。
为什么别用 rm -rf 或手动删文件夹
手动删除缓存目录(比如 %LocalAppData%\pip\Cache 或 ~/.cache/pip)看似直接,但容易出问题:
- pip 可能正在后台写入缓存,强行删目录会导致下一次
pip install报OSError: [Errno 2] No such file or directory - 某些系统(尤其是 Windows)会把
AppData下的缓存目录设为隐藏+只读,手动删可能失败或静默跳过 -
pip cache purge是原子操作,而rm -rf是暴力递归,万一路径写错(比如少个~或多层..),可能误删重要数据
pip cache purge 的兼容性与副作用
这个命令从 pip 20.1 版本起就内置支持,目前所有主流 Python 环境(包括 conda 激活的环境)都可用。它不会影响已安装的包、虚拟环境或项目代码,只是让下次安装时重新下载——仅此而已。
几个常见误区:
- 它不清理
site-packages里的已安装包,只动下载缓存 - 它不影响
pip list输出,也不会改变任何 import 行为 - 如果你用的是公司内网或离线环境,清理后首次安装会变慢,因为要重新拉包;但这是预期行为,不是 bug
想只删某个包的缓存?用 pip cache purge <package-name></package-name>
比如你只想清理旧版 numpy 的缓存,避免它干扰新版本安装:
pip cache purge numpy
注意:<package-name></package-name> 必须和 pip show numpy 显示的 Name 字段完全一致(区分大小写,不含下划线/连字符等变体)。如果不确定,先运行 pip cache info 查看缓存内容摘要,再决定是否全清。
真正容易被忽略的一点:缓存是全局共享的,无论你激活哪个虚拟环境,pip cache purge 都会影响所有环境的后续安装速度——这不是缺陷,而是设计使然。所以别在 CI 脚本里无条件加这句,除非你明确需要“每次构建都重拉”。


















