在不安装的情况下获取pip依赖版本



当您告诉pip同时安装多个包时,它会查找所有子依赖项,并安装所有父包限制所允许的最新版本。

例如,如果packageA需要child>0.9,并且包B需要child<1.1,则pip将安装child==1.1。

我正在尝试编写一个脚本来扫描requirements.txt并固定所有未列出的子包版本。

一种方法是简单地通过pip install -r requirements.txt安装requirements.txt文件中的所有内容,然后解析pip freeze的输出,并从我的requirements.txt文件中删除所有包。剩下的所有东西都应该是子包和pip计算的最高版本号。

然而,这需要创建一个Python虚拟环境并安装所有包,这可能需要一些时间。pip中是否有任何选项可以在不实际安装软件包的情况下进行版本计算?如果没有,是否有类似pip的工具可以提供此功能?

您可以阅读带有json模块的PyPI托管包的包要求:

python3终端/脚本:

import csv
import json
import requests
your_package = str('packageA')
pypi_url = 'https://pypi.python.org/pypi/' + your_package + '/json'
data = requests.get(pypi_url).json()
reqs = data['info']['requires_dist']
print(reqs)
print('Writing requirements for ' + your_package + ' to requirements.csv')
f = open('requirements.csv', 'w')
w = csv.writer(f, delimiter = ',')
w.writerows([x.split(',') for x in reqs])
f.close()

如果我正确回答了你的问题,你正试图安装一个特定版本的软件包,一种方法是在你的requirement.txt文件中指定版本后,可以使用pip-install安装,然后使用依赖项加上版本示例pip安装WhatsApp v3.5

最新更新