gpt4 book ai didi

Python 包要求 : Usage of version specifiers == and >=

转载 作者:太空宇宙 更新时间:2023-11-04 03:26:57 25 4
gpt4 key购买 nike

我正在寻找最佳实践,关于 python 包中 pip 的需求文件中的版本规范的注意事项。

假设一个 python 包依赖于其他一些模块。其中大多数都需要最低版本。至少维护者知道,代码至少可以工作,例如。六个1.7

现在,可以用不同的方式定义需求:

  • six>=1.7.0 软件已经在这个版本上测试过,并且假设它也会在未来的版本上测试
  • six==1.7.0 我们需要确切的版本,包已经过测试。该软件尚未针对该模块的所有 future 版本进行测试,因此我们无法保证它适用于这些版本。
  • six==1.9.0 我们只是用最新版本测试它并要求它。

我确实不愿意要求一个确切的版本,因为它可能会破坏其他包的要求并且对我来说似乎是不好的做法。另一方面,该包尚未与 1.7.0 以上的 6 个所有版本进行测试。

是否有任何关于包版本要求和 ==>= 用法的指南?

最佳答案

根据我作为开发人员、打包人员(分发包维护人员)和软件维护人员的经验,我得出以下解释/建议:

  • install_requires:install_requires 中列出的依赖项在运行时(!)由 pkg_resources 检查。它们是硬依赖。它们可以(应该?)包含所需的最低版本号,但除非给出非常充分的理由,否则不包含确切的版本号。更多受支持的版本通常更有用,最大版本号通常是一场噩梦。
  • extras_requires 列出可选的要求(建议),核心功能不需要,但对于一些额外的,或者是可选的,增强功能。如果一个软件没有它就不能正常工作,它应该转到 install_requires。
  • requirements.txt 一些维护者将其设置为与 install_requires 相同,而另一些则根本不使用它。它可用于推荐经过最佳测试的特定需求版本。这当然对打包毫无用处,但对于 virtualenvs 和类似的设置。

打包器通常不使用 requirements.txt 中的信息,而是使用 install_requires 和 extras_requires 中的信息。

关于Python 包要求 : Usage of version specifiers == and >=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32680603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com