pip
的当前行为:
想象一个 Python 包spam
.它有三个依赖项 - 包package1
、package2
和package3
。当用户spam
pip
安装包时,用户之前没有安装任何依赖项,因此也安装了所有三个依赖项。当用户使用pip
卸载包时,只会删除spam
包 - 其依赖项保持不变。
我想知道是否可以实施另一种方案:
在用户安装软件包spam
pip
的那一刻,package1
软件包已经被用户之前安装过,因此只安装了两个依赖项。当用户使用pip
卸载软件包时,他可以选择是否删除在安装spam
软件包期间已安装的依赖项。也就是说,package1
已经存在,我们不想删除它,但是,package2
和package3
在安装spam
期间已经安装,用户可以明确地说:"我想删除在软件包安装过程中已安装的此软件包的依赖项"。
这背后的动机是有一个 Python 包有很多依赖项,我想知道是否有任何聪明的方法允许用户在卸载时清理其依赖项。
使用autoremove
而不是uninstall
:
pip install pip-autoremove
pip-autoremove spam -y
spam
是您的包裹。