【问题标题】:Is there any reason to list standard library dependencies when using setuptools?使用 setuptools 时是否有任何理由列出标准库依赖项?
【发布时间】:2016-11-21 22:35:47
【问题描述】:

我已经走完了 Python 打包和分发的兔子洞,我想知道:

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

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

谢谢

【问题讨论】:

标签: python setuptools distutils


【解决方案1】:

总之,。依赖项的重点是确保在有人安装您的库时它们可用。由于标准库始终可用于 python 安装,因此您不需要包含它们。

如需更人性化的包装指南,请查看 Hynek 的指南: Sharing Your Labor of Love: PyPI Quick and Dirty

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 2014-01-15
      • 2021-02-18
      • 2016-06-01
      • 2017-07-18
      • 1970-01-01
      • 2017-02-12
      相关资源
      最近更新 更多