2017-01-23 111 views
11

有没有办法让一个给定的python包的依赖项列表,而不先安装它?如何在不安装的情况下列出python库的依赖关系?

我目前可以获得需求列表,但需要安装软件包。例如,我可以使用画中画显示基本要求的信息,但它不包括版本信息:

$ pip show pytest 
Name: pytest 
Version: 3.0.6 
... 
Requires: colorama, setuptools, py 

我已经尝试了库调用pipdeptree,其中包括对要求更好的输出,但它也需要安装的包

$ pipdeptree -p pytest 
pytest==3.0.6 
- colorama [required: Any, installed: 0.3.7] 
- py [required: >=1.4.29, installed: 1.4.32] 
- setuptools [required: Any, installed: 34.0.0] 
    - appdirs [required: >=1.4.0, installed: 1.4.0] 
... 

理想情况下,我会得到pipdeptree提供的详细程度。另外,能够从python wheel或pypi与pip生成requirements.txt文件也足够了。

编辑:

我已经看了similar问题。它们或者过时,需要安装,或者它们没有列出单个的依赖关系对于给定的包,只有在解析依赖性需求之后的最终下载的包的列表。例如,我并不在意那个点子下载package-2.3.4,我宁愿知道package>=2.1是一个要求。

+0

我不知道你为什么得到-1!无论如何,假设你使用pip来安装matplotlib。据推测,pip可以验证它具有使matplotlib成功运行所需的库版本。如果你想问,那么它是否更有可能给你一个答案,pip如何知道为任何给定的库安装哪个版本的需求? –

+0

@BillBell对这个问题的回答会给我一部分解决方案。目前在python中指定需求有些分解。对于车轮,我可以查看'METADATA'文件并解析出'Requires-Dist'部分。对于传统的'tar.gz'源代码发行版,它不太清楚。我要么必须解析'requirements.txt'文件,要么尝试解析'setup.py'文件。但是'pip'和其他库已经可以做到这一点,所以如果我可以重复使用他们正在使用的任何逻辑来获取信息,那将是非常好的。 –

+1

[有没有办法列出pip依赖/需求?](http://stackoverflow.com/questions/11147667/is-there-a-way-to-list-pip-dependencies-requirements) –

回答

0

如果你不介意安装畅达,这可能会为你做的伎俩:

$ conda info numpy=1.11.1 python=3.6.3 

包的版本号或Python是可选的(当时所有版本进行说明)

相关问题