在不安装PyPI的情况下获取包的要求?

时间:2018-05-16 22:39:37

标签: python pip packages pypi package-management

我需要以下内容:

pip showrequirements tensorflow

这将返回允许我解析所需包的名称和所需版本的内容:

astor>0.6, tensorboard>1.0.11, etc.

pip在安装和下载命令期间以某种形式获取此信息。我可以看到它在代码中发生的地方......但在我破解使用pip的内部代码之前,是否有任何简单的API或现有的库可以做到这一点?

编辑:我无法安装软件包看到这个,所以pip show不会工作。一个(hacky)解决方案是解析pip download的输出。

谢谢!

2 个答案:

答案 0 :(得分:1)

pip show <package_name>

将列出&#34;要求&#34;中的依赖项。部分。见documentation

修改

pip show仅适用于已安装的软件包。对于卸载的软件包,PyPI有一个JSON API

例如:

import json

import requests

package_name = 'tensorflow'
url = 'https://pypi.python.org/pypi/' + str(package_name) + '/json'
data = requests.get(url).json()

print(data['info']['requires_dist'])

答案 1 :(得分:0)

因此旧版本的pip but no longer曾经有--no-install个标记。 pip show将显示“Requires”属性,但仅适用于您的环境(系统或您的venv)中安装的软件包,您似乎希望在安装之前检查要求。所以,遗憾的是,我认为没有一种很好的方法来实现你所寻找的东西。