distutils 对 "requires" 元数据做了什么?
What does distutils do with the "requires" metadata?
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
中找到明文形式的需求规范),但如果没有消费者,仅此一项似乎毫无用处。
查看 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))
Dependencies on other Python modules and packages can be specified by supplying the
requires
keyword argument tosetup()
.
例如 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
中找到明文形式的需求规范),但如果没有消费者,仅此一项似乎毫无用处。
查看 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))