【发布时间】:2021-08-04 06:01:19
【问题描述】:
我正在尝试编写一个从setup.py 复制python_requires 行为的函数,因为我未能在setuptools 和pip 的源代码中找到实现。比较 Python should be easy enough 中的版本号,我使用的是 packaging.version,它为我完成了所有工作,除了...
让我们看看像">=2.6, !=3.0.*, !=3.1.*" 这样的版本字符串。我在每个逗号处分开,然后分别查看每个比较:
from packaging import version
version.parse("3.0.5") >= version.parse("2.6")
正如预期的那样,3.0.5 版本高于 2.6。下一个:
version.parse("3.0.5") != version.parse("3.0.*")
这将返回 True(即3.0.5 与3.0.* 不同不),但版本3.0.5 实际上应该匹配3.0.*。 Python中是否有标准方法来检查带有通配符的版本号是否与另一个版本号匹配?
edit:也相关,我将如何实现兼容的版本匹配器,例如~= 3.0.5,它应该匹配任何版本>= 3.0.5 但< 3.1.0?
看来我正在尝试在这里实现PEP 440 的版本说明符...
【问题讨论】:
标签: python versioning semantic-versioning