在 PyPI 中获取包的要求而不安装它?

mmn*_*yle 5 python packages pip package-management pypi

我需要类似以下内容:

pip showrequirements tensorflow
Run Code Online (Sandbox Code Playgroud)

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

astor>0.6, tensorboard>1.0.11, etc.
Run Code Online (Sandbox Code Playgroud)

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

编辑:我无法安装软件包来查看此内容,因此 pip show 将不起作用。一种(hacky)解决方案是解析 pip 下载的输出。

谢谢!

小智 11

pip show <package_name>
Run Code Online (Sandbox Code Playgroud)

将在“需要”部分列出依赖项。请参阅文档

编辑:

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'])
Run Code Online (Sandbox Code Playgroud)