在不安装 PyPI 的情况下获取包的要求? [复制]
Posted
技术标签:
【中文标题】在不安装 PyPI 的情况下获取包的要求? [复制]【英文标题】:Get the requirements of a package in PyPI without installing it? [duplicate] 【发布时间】:2018-10-27 02:23:13 【问题描述】:我需要类似以下的东西:
pip showrequirements tensorflow
这将返回允许我解析所需包的名称和所需版本的内容:
astor>0.6, tensorboard>1.0.11, etc.
pip 在安装和下载命令期间以某种形式获取此信息。我可以看到它在代码中发生的位置......但在我破解使用 pip 内部代码的方式之前,是否有任何简单的 API 或现有库可以做到这一点?
编辑:我无法安装包来查看这个,所以 pip show 不起作用。一种(hacky)解决方案是解析 pip 下载的输出。
谢谢!
【问题讨论】:
【参考方案1】:pip show <package_name>
将在“Requires”部分列出依赖项。见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'])
【讨论】:
【参考方案2】:所以在旧版本的 pip 中曾经有一个 --no-install
标志,but no longer。 pip show
将向您显示“Requires”属性,但仅适用于安装在您的环境(系统或您的 venv)中的软件包,您似乎想在安装之前检查需求。所以,可悲的是,我认为没有一种很好的方法来完成你正在寻找的东西。
【讨论】:
以上是关于在不安装 PyPI 的情况下获取包的要求? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我可以在不在 pypi 中注册包的情况下制作 pip 可安装包吗?
NPM - 如何在不更新或添加 package.json 中描述的包的情况下安装新包
有没有办法在不安装包的情况下按字母顺序排列 package.json?