Java 用于处理软件版本的python模块

Java 用于处理软件版本的python模块,java,python,maven,continuous-integration,version,Java,Python,Maven,Continuous Integration,Version,我正在寻找一个python模块/库,它将在“软件版本”上运行。。。这意味着,例如: 比较版本“1.0-SNAPSHOT”和“1.1-SNAPSHOT”,并指出哪个版本较新 将“1.0.1-快照”增加到“1.0.2-快照” 将“1.0-SNAPSHOT”改为“1.0”,与“-RELEASE”相同 是的,命名版本来自java(maven)世界——我的python部分应该在它们上运行 有什么想法吗?distutils/disutils2包包含一个名为version的模块,它提供了有用的类: imp

我正在寻找一个python模块/库,它将在“软件版本”上运行。。。这意味着,例如:

  • 比较版本“1.0-SNAPSHOT”和“1.1-SNAPSHOT”,并指出哪个版本较新
  • 将“1.0.1-快照”增加到“1.0.2-快照”
  • 将“1.0-SNAPSHOT”改为“1.0”,与“-RELEASE”相同
是的,命名版本来自java(maven)世界——我的python部分应该在它们上运行


有什么想法吗?

distutils/disutils2包包含一个名为version的模块,它提供了有用的类:

import distutils
>>> vs1 = distutils.version.LooseVersion("1.0-SNAPSHOT")
>>> vs2 = distutils.version.LooseVersion("1.1-SNAPSHOT")
>>> vs1 < vs2
True
导入distutils
>>>vs1=distutils.version.LooseVersion(“1.0-SNAPSHOT”)
>>>vs2=distutils.version.LooseVersion(“1.1-SNAPSHOT”)
>>>vs1
希望有帮助

对此有一些支持

>>> from distutils.version import LooseVersion  # or StrictVersion
>>> LooseVersion("1.0-SNAPSHOT") < LooseVersion("1.1-SNAPSHOT")
True
>>> v = LooseVersion("1.0.1-SNAPSHOT")
>>> v.version
[1, 0, 1, '-SNAPSHOT']
>>从distutils.version导入LooseVersion#或StrictVersion
>>>LooseVersion(“1.0-SNAPSHOT”)>>v=版本(“1.0.1-SNAPSHOT”)
>>>v.版本
[1,0,1'-快照']

不过,您必须自己进行递增和其他操作。

我可以进行反向操作吗?从[1,0,1,'-SNAPSHOT']生成“1.0.1-SNAPSHOT”?很遗憾,不是。您只能从字符串构造
LooseVersion
,并且更新其
version
成员不会导致其具有不同的
vstring