Получить требования пакета в PyPI без его установки?

Мне нужно что-то вроде следующего:

pip showrequirements tensorflow

Это вернет что-то, что позволит мне проанализировать имена требуемых пакетов и требуемых версий:

astor>0.6, tensorboard>1.0.11, etc.

pip получает эту информацию в той или иной форме во время установки и загрузки команды. Я могу видеть, где это происходит в коде... но прежде чем перейти к использованию внутреннего кода pip, есть ли простой API или существующая библиотека, которая может это сделать?

изменить: я не могу установить пакет, чтобы увидеть это, поэтому пип-шоу не будет работать. Одно (хакерское) решение - анализ результатов загрузки pip.

Спасибо!

2 ответа

pip show <package_name>

перечислит зависимости в разделе "Требуется". Смотрите документацию.

Редактировать:

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'])

Так что раньше было --no-install флаг в более старой версии pip, но больше не. pip show покажет вам свойство "Требуется", но только для пакетов, установленных в вашей среде (системе или в вашем venv), где, кажется, вы хотите проверить требования перед установкой. Так что, к сожалению, я думаю, что нет хорошего способа выполнить то, что вы ищете.

Другие вопросы по тегам