我已经离开了Python包装和分发兔子洞,我想知道:
使用
setup()
时,是否有任何理由提供标准库模块/包作为setuptools
的依赖项?
旁注:the only setuptools
docs I have found are terrible。还有什么更好的吗?
由于
答案 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项目与标准模块兼容,并且由于历史原因/向后兼容性而仅作为单独的项目存在。在最糟糕的情况下......好吧,运用你的想象力。