如何彻底清理已卸载的Python依赖包以释放服务器磁盘空间?
如何彻底清理已卸载的Python依赖包以释放服务器磁盘空间?
兄弟,太懂你这种磁盘配额超了的焦虑了!尤其是装JAX这种带CUDA的大体积包,明明用pip uninstall删了依赖、清了~/.cache,磁盘空间还是没回来——肯定是有残留文件藏在某个角落没清干净。给你一套实操步骤,帮你把这些冗余文件连根拔起:
1. 手动清理Python site-packages目录的残留文件夹
pip卸载有时候会漏掉一些带版本号的缓存文件夹或者残留配置,先找到你的Python包安装目录:
# 输出Python的site-packages目录路径(通常有系统级和用户级两个) python -c "import site; print(site.getsitepackages())"
复制输出里的路径(比如~/.local/lib/python3.10/site-packages或者/usr/local/lib/python3.10/site-packages),进入该目录后,删除所有和你安装过的包相关的文件夹,比如:
dm_haiku-0.0.12.dist-infojax-0.4.25.dist-infojaxlib-*(JAX的CUDA依赖库文件夹)sentencepiece-0.2.0.dist-info- 还有没有后缀的同名文件夹(比如
jax/、numpy/,如果卸载后还存在的话)
2. 清理pip的隐藏缓存目录
除了~/.cache/pip,pip还有可能在其他位置存缓存文件,直接删掉这些目录:
# 清理pip的本地共享缓存 rm -rf ~/.local/share/pip # 清理/tmp目录下的Python安装临时文件 rm -rf /tmp/pip-* /tmp/python-*
3. 排查JAX专属的CUDA残留文件
JAX安装时会自动下载CUDA相关的预编译库,这些文件有时候不会跟着pip卸载一起删除,用搜索命令找出这些零散文件(需要sudo权限):
# 先搜索确认文件位置,避免误删 sudo find /usr/local -name "*jaxlib*" -o -name "*jax*cuda*" | grep -v "site-packages" # 确认是无用文件后,再删除 sudo find /usr/local -name "*jaxlib*" -o -name "*jax*cuda*" | grep -v "site-packages" | xargs rm -rf
4. 验证卸载彻底性
最后检查一遍有没有残留的包,再看磁盘空间:
# 查看已安装的Python包,确认目标包不在列表里 pip list | grep -E "dm_haiku|jax|numpy|sentencepiece" # 查看磁盘空间变化 df -h
另外给你个小建议:以后装这种大体积的Python包,最好用虚拟环境(比如venv或conda),卸载时直接删掉整个虚拟环境文件夹,比系统级安装后清理要省事多!
备注:内容来源于stack exchange,提问作者Gordon Zhang




