distutils如何处理“需要”元数据?

时间:2019-05-14 17:15:00

标签: python pip distutils

来自distutils docs

  

可以通过向requires提供setup()关键字参数来指定对其他Python模块和软件包的依赖性。

例如python-gflags发行版使用distutils并指定对six的依赖关系:

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

但是,与setuptools的install_requires deps不同,使用pip安装python-gflags实际上不会安装依赖项six

问题是, distutils和/或pip实际上使用此requires是什么?我可以看到它已存储在分发元数据中(安装后,您可以在文件site-packages/python_gflags-3.1.2.dist-info/METADATA中以纯文本的形式找到需求规范),但是如果没有使用者,仅此一项就显得毫无用处。

1 个答案:

答案 0 :(得分:4)

遍历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))