distutils 对 "requires" 元数据做了什么?

What does distutils do with the "requires" metadata?

来自distutils docs

Dependencies on other Python modules and packages can be specified by supplying the requires keyword argument to setup().

例如 python-gflags 分布使用 distutils 并指定对 six 的依赖:

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

然而,与 setuptools 的 install_requires deps 不同,使用 pip 安装 python-gflags 实际上并没有安装依赖项 six

问题是,distutils and/or pip 实际上用这个 requires 做什么?我可以看到它存储在分发元数据中(安装后您可以在文件 site-packages/python_gflags-3.1.2.dist-info/METADATA 中找到明文形式的需求规范),但如果没有消费者,仅此一项似乎毫无用处。

查看 requiresdistutils 中的所有用法,除了在 运行 python setup.py --requires 时打印此信息外,我没有发现任何有意义的用法。在这个 setup.py 示例中:

from distutils.core import setup

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

它将显示:

bar
baz

Source:

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