有什么理由 setup.py install_requires 应该包括设置工具吗?

Any reason setup.py install_requires should include setuptools?

我注意到一些 python 项目在所需模块列表中包含 setuptools。没有它,我的代码可以正常安装和执行。

我可能弄错了,但我认为 install_requires 列表的目的是指定安装后执行所需的模块,而不是安装期间。

是否有一些特殊的用例需要安装 setuptools

install_requires=[
    'setuptools',
    'requests',
],

如果您的项目使用 pkg_resources,例如从 entry points 加载资源,它 run-time 依赖于 setuptools(其中包括 pkg_resources包)。

由于 Django 的 setup.py 不包括 setuptools 作为要求但确实使用了 pkg_resouces,因此 can lead to confusion.