首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >package要求:版本说明符==和>=的使用

package要求:版本说明符==和>=的使用
EN

Stack Overflow用户
提问于 2015-09-20 14:42:06
回答 1查看 1K关注 0票数 3

我正在寻找最佳实践,在python包中需要的pip文件中的版本规范。

假设一个依赖于其他模块的python包。它们中的大多数都需要一个最低版本。至少维护人员知道,代码使用最少的代码,例如,61.7。

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

  • six>=1.7.0这个软件已经用这个版本进行了测试,并且假定它也将与未来的版本一起测试。
  • six==1.7.0我们需要确切的版本,这个包已经过测试。该软件尚未与所有未来版本的模块测试,因此我们不能保证它将对这些工作。
  • six==1.9.0 --我们只是用最新的版本来测试它,并且需要它。

我确实有一种抑制,要求一个确切的版本,因为它可能打破其他包的要求,似乎对我不好的做法。另一方面,该软件包还没有在1.7.0以上的6个版本中进行测试。

是否有关于包版本要求和==>=的使用的指导方针?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-17 16:04:24

根据我作为开发人员、packager (用于发行版的包维护者)和软件维护者的经验,我提出了以下解释/建议:

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32680603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档