关于 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, 弄了一下初步的解决方案.

