使用pip列出软件包的依赖关系

107

我怎样使用pip列出一个软件包的依赖关系?

2个回答

159

在当前的pip(版本1.3.1)中,您可以通过使用以下命令查看已安装软件包的依赖关系:

pip show <package>

105
请注意,这仅适用于已安装的软件包。 - JonnyJD
cd env; bin/python -c 'import pip; D = {d.key: d for d in pip.get_installed_distributions()}; F = lambda xs: sum([F(x) if isinstance(x, list) else [x] for x in xs], []); R = lambda k: [k] + F([R(r.key) for r in D[k].requires()]); print " ".join(R("mypkg") if "mypkg" in D else [])' - j0057
2
另请参见https://dev59.com/zWox5IYBdhLWcg3wYzfX#30450999 - maltem-za
12
如何在安装软件包之前查找它? - Bersan
1
使用以下命令下载未安装的软件包:pip download <package> --verbose - MorLavender

13
请注意,这个回答是从2012年的,现在已经过时了。首先,这个回答中提到的解决方法,现在你不能使用了。如果你想要一个类似的解决方法,你可以使用pip download,但它更不可能是你想要的东西。特别是因为pip show已经得到了改进。幸运的是,这个问题被标记为后来的一个问题的重复,所以没有理由阅读这个答案,除了历史目的之外。
直接地说,你不能做到这一点。
你可以在自己的代码中导入pip模块,下载要求文件,然后遍历它。或者,在命令行中,你可以使用pip install --no-install --verbose
但实际上,除非这是你需要自动化的事情,否则直接去http://pypi.python.org/搜索包,比使用pip更容易。

29
在我的 pip 版本(1.5.4)中,“--no-install” 标志已被弃用。 - Jian
7
在我的pip版本(10.0.0)中,没有--no-install这样的选项。 - avalanchy
2
@avalanchy,为什么你要尝试做一个6岁孩子都知道不应该做的事情呢?问题已经被标记为重复,并有一个更新的答案告诉你正确的方法。 - abarnert
1
@abarnert 我这个蠢脑袋竟然以为 OP 是指另一个屏幕外的答案过时了(而不是这个),结果我也尝试了一下。扇自己一个耳光 - jkmartindale
不再起作用 - Atif Ali
pip download <package> --verbose - MorLavender

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接