使用setuptools时是否有任何理由列出标准库依赖项?

时间:2016-11-21 22:35:47

标签: python setuptools distutils

我已经离开了Python包装和分发兔子洞,我想知道:

  

使用setup()时,是否有任何理由提供标准库模块/包作为setuptools的依赖项?

旁注:the only setuptools docs I have found are terrible。还有什么更好的吗?

由于

2 个答案:

答案 0 :(得分:5)

总之,没有。依赖关系的重点是确保在有人安装您的库时它们可用。由于标准库始终可以通过python安装使用,因此您无需包含它们。

有关更加用户友好的包装指南,请查看Hynek指南: Sharing Your Labor of Love: PyPI Quick and Dirty

答案 1 :(得分:2)

- 实际上,您永远不会将标准模块指定为setup()要求,因为这些要求仅用于从PyPI下载包(或VCS存储库或其他包索引)。例如,将"itertools"添加到install_requires将意味着您的程序包将无法安装,因为there's (currently) no package named "itertools" on PyPI无法满足其依赖性。一些标准模块与PyPI上的项目共享其名称;在最好的情况下(例如,argparse),PyPI项目与标准模块兼容,并且由于历史原因/向后兼容性而仅作为单独的项目存在。在最糟糕的情况下......好吧,运用你的想象力。