关于 Python pip 的疑问

pip uninstall 移除 package, 无法彻底清理依赖:

    $ pip install qu
$ pip show -v qu
...
`Requires: qiniu, click, pytest`
...

$ pip uninstall -y qu

$ pip freeze | grep -E 'qiniu|click|pytest'

`click==6.7`
`pytest==3.3.1`
`qiniu==7.2.0`


关于 Python pip 的疑问

10 回复

pip uninstall 时候依赖的 package 确实是不会被清除的,可以试试 pip-autoremove,或者自己编脚本清。
pip-autoremove 有个问题是无法确定一个 package 是否被多依赖,比较暴力,所以用起来需谨慎。

还有就是建议利用 virtualenv 去隔离 python 环境,这样卸载包也方便


我无法理解你的问题

嗯,pip 本身没有 auto / manual 的区分,不会自动删除依赖。
我推荐一个工具,pip install pipdeptree

用 pipenv 自动解决依赖问题,无残留

感谢两位大佬, 参考一下,准备撸一个工具, 仅拓展 pip uninstall 的功能。

谢了,不过暂时还不想迁移到另一套工作流上。

包依赖管理是个比较复杂事情,重复依赖、包版本都需要考虑到,所以安全起见,让冗余多一点也是稳妥的解决方法。磁盘上多几个用不到的包不碍事,错删一个必须的依赖库就跑不起来。

打包 RPM 让系统来管

能用 docker,还是用 docker 吧。。

https://github.com/cls1991/pef, 弄了一下初步的解决方案.

回到顶部