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`
1
TimePPT 2017-12-22 18:42:22 +08:00 1
pip uninstall 时候依赖的 package 确实是不会被清除的,可以试试 pip-autoremove,或者自己编脚本清。
pip-autoremove 有个问题是无法确定一个 package 是否被多依赖,比较暴力,所以用起来需谨慎。 还有就是建议利用 virtualenv 去隔离 python 环境,这样卸载包也方便 |
2
Arnie97 2017-12-22 18:47:05 +08:00 via Android
嗯,pip 本身没有 auto / manual 的区分,不会自动删除依赖。
我推荐一个工具,pip install pipdeptree |
3
LokiSharp 2017-12-22 18:52:33 +08:00 via iPhone
用 pipenv 自动解决依赖问题,无残留
|
4
cls1991 OP |
6
rogwan 2017-12-22 19:15:34 +08:00
包依赖管理是个比较复杂事情,重复依赖、包版本都需要考虑到,所以安全起见,让冗余多一点也是稳妥的解决方法。磁盘上多几个用不到的包不碍事,错删一个必须的依赖库就跑不起来。
|
7
lolizeppelin 2017-12-22 21:42:22 +08:00 via Android
打包 RPM 让系统来管
|
8
Cbdy 2017-12-22 21:53:43 +08:00 via Android
能用 docker,还是用 docker 吧。。
|
9
cls1991 OP @all https://github.com/cls1991/pef, 弄了一下初步的解决方案.
|