【问题标题】:Allowing different versions in requirements.txt?允许在 requirements.txt 中使用不同的版本?
【发布时间】:2018-06-05 17:52:59
【问题描述】:

我正在开发一个 Python 项目,其中我们有一个 requirements.txt 文件,其中指定了包的确切版本

我们正在考虑是否使用this syntax 来允许安装不同的版本。这是推荐的吗?还是继续使用每个包的特定版本更安全?我们能否相信 PyPI 包的 API 在次要版本或补丁版本之间切换时保持不变?

设置:

  • Python 3.5
  • 我们使用 PyInstaller 构建包
  • 远程使用 Travis CI

【问题讨论】:

  • 恐怕这完全取决于这些软件包。 Python 的科学堆栈(numpy、scipy、pandas、matplotlib、sklearn)在这方面非常成熟(弃用警告;然后是很久以后的删除/更改),但其他可能会有所不同。

标签: python python-3.x pip pypi requirements.txt


【解决方案1】:

如果您的依赖包足够成熟,可以进行严格的版本控制,它们可能会遵循semantic versioning 方法。

使用这种方法并引用上面的链接,有 3 个版本号

MAJOR version when they make incompatible API changes,
MINOR version when they add functionality in a backwards-compatible manner, and
MAINTENANCE version when they make backwards-compatible bug fixes.

因此,在这种情况下,您可以使用上面提到的语法来锁定您的包,以使用您的包的最后一个不可破坏的 api 版本,即:

foo>5, <5.7

(因为您知道5.7 中有一个重大更改,或者5.8 中有您不需要的新功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2020-08-15
    • 2017-04-06
    • 2021-11-04
    • 1970-01-01
    • 2016-04-08
    • 2016-02-24
    相关资源
    最近更新 更多