Что делает distutils с метаданными «require»? - PullRequest
8 голосов
/ 14 мая 2019

Из документов distutils :

Зависимости от других модулей и пакетов Python можно указать, указав аргумент requires в setup().

.

Например, python-gflags использует distutils и указывает зависимость от six:

https://github.com/google/python-gflags/blob/master/setup.py#L43

Тем не менее, в отличие от install_requires установки setuptools, установка python-gflags с pip фактически не устанавливает зависимость six .

Вопрос в том, , что distutils и / или pip на самом деле делают с этим requires значением , если что? Я вижу, что они хранятся в метаданных дистрибутива (спецификацию требований можно найти в виде открытого текста в файле site-packages/python_gflags-3.1.2.dist-info/METADATA после установки), но это само по себе кажется бесполезным без потребителя.

1 Ответ

4 голосов
/ 22 мая 2019

Проходя все случаи использования requires в distutils Я не нашел никакого осмысленного использования, кроме печати этой информации при запуске python setup.py --requires.На этом setup.py примере:

from distutils.core import setup

setup(name='foo', requires=['bar', 'baz'])

Будет показано:

bar
baz

Источник:

elif opt in ('classifiers', 'provides', 'requires',
             'obsoletes'):
    print('\n'.join(value))
...