请解释 Pipfile 中的版本编号
Please explain version numbering in Pipfile
在使用其他开发人员编写的 Pipfile 时,我发现了以下深奥的构造:
package="~=3.4.2.17"
这是什么意思?我假设,这是否意味着 any 版本,而不是 3.4.2.17?
package="==1.12.0"
这与 package="1.12.0" 有何不同?
一般来说,指定版本号或范围的正确方法是什么?
有专门的 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/,这些是:
~=
兼容
==
匹配,.*
可能
!=
排除
<=, >=
包含(有序)
<, >
独家(已订购)
===
任意相等。
逗号(,
)表示逻辑和。
在使用其他开发人员编写的 Pipfile 时,我发现了以下深奥的构造:
package="~=3.4.2.17" 这是什么意思?我假设,这是否意味着 any 版本,而不是 3.4.2.17?
package="==1.12.0" 这与 package="1.12.0" 有何不同?
一般来说,指定版本号或范围的正确方法是什么?
有专门的 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/,这些是:
~=
兼容==
匹配,.*
可能!=
排除<=, >=
包含(有序)<, >
独家(已订购)===
任意相等。
逗号(,
)表示逻辑和。