You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何彻底清理已卸载的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-info
  • jax-0.4.25.dist-info
  • jaxlib-*(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包,最好用虚拟环境(比如venvconda),卸载时直接删掉整个虚拟环境文件夹,比系统级安装后清理要省事多!

备注:内容来源于stack exchange,提问作者Gordon Zhang

火山引擎 最新活动