【发布时间】:2020-04-10 09:42:57
【问题描述】:
在卸载之前是否可以使用 pip 来查看谁需要模块?怎么样?
这就是我问的原因:
在 RPM 包中:
- 每个软件包都列出了它自己的软件部门
- 当你去执行
yum remove NAME时,yum 说“PACKAGE_A, PACKAGE_B, ... 每个都依赖于NAME”然后 yum 会弹出一个交互式提示询问“你想删除 NAME 和 PACKAGE_A, PACKAGE_B ,...,是还是不是?” - yum 告诉我,做
yum remove NAME会破坏其他事情......所以我说“不”并重新考虑(或者说是,因为我想要 PACKAGE_A、PACKAGE_B、...,删除)
在 PIP 封装中:
- 每个软件包都列出了它自己的软件部门
- 当你去做
pip uninstall botocorepip 时说“你想删除 ${list_of_files_for_botocore_package},是还是不是?” - 你说是因为你想删除 botocore
- 那你怕弄坏东西所以你这样做
- 点检查
- 然后您会看到“boto3 ... 需要未安装的 botocore”
- pip 卸载现在使一个或多个模块处于损坏状态
- 尽管 pip 提前知道 boto3 需要 botocore...
- pip 可能会像 yum 那样警告我或说些什么或提议删除 boto3
我想我可以编写一些 python 代码来构建一个图形...然后通过查看图形找出谁需要 botocore...但我想知道... pip 是否已经具有这样的功能?似乎默认行为不是那么好(它至少应该打印一条消息)。
【问题讨论】:
-
据我所知,pip 中没有这样的东西,但 pipdeptree 或 deptree 等工具可以提供帮助。
-
@sinoroc 我只是对导致一个或多个损坏状态的默认行为感到惊讶。但也许解决方案是使用您的解决方法并始终与
pipdeptree -r联系。 -
搜索中的所有答案都是关于反向依赖。
-
@phd 你不认为:stackoverflow.com/q/9232568/52074 是一个更好的副本(它有 147 票,而且 IMO 提供了 pipdeptree 解决方案......这要好得多......你链接到的那个。 ..几乎没有IMO那么高质量)。还有问题 9232568 是一年前的。
标签: python pip dependency-management package-managers