请解释 Pipfile 中的版本编号

Please explain version numbering in Pipfile

在使用其他开发人员编写的 Pipfile 时,我发现了以下深奥的构造:

一般来说,指定版本号或范围的正确方法是什么?

有专门的 git 项目 https://github.com/pypa/pipfile,仅用于 Pipfile 规范。但是,它没有解释这些结构。

可以假设指定的值是错误的。但是 pipenv 吞下了它们而没有错误消息,所以这可能不太可能。

版本描述格式在PEP 440 — Version Identification and Dependency Specification中指定。

  • ~=3.4.2.17(兼容发布条款)表示 3.4.2.* 的版本大于或等于 3.4.2.17
  • ==1.12.0(一个版本匹配子句)确实意味着版本 1.12.0 但有一些关于通配符如何工作的细节,这在 PEP 文档中有解释。

来自https://www.python.org/dev/peps/pep-0440/,这些是:

  • ~= 兼容
  • == 匹配,.* 可能
  • != 排除
  • <=, >=包含(有序)
  • <, >独家(已订购)
  • ===任意相等。

逗号(,)表示逻辑