栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python比较版本号

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python比较版本号

文章目录
  • 简介
  • 安装
  • 初试
  • 解析字符串
  • Version 对象
  • 参考文献

简介

Python比较版本号,遵循 PyPA规范

PEP 440 定义的公共版本标识符如下:

[N!]N(.N)*[{a|b|rc}N][.postN][.devN]

最多分为五个部分:

  • Epoch:N!
  • Release:N(.N)*
  • Pre-release:{a|b|rc}N
  • Post-release:postN
  • Development release:devN
类型例子
最终发布版本Final releases0.9.1
1.0
2012.10
预发布版本Pre-releasesX.YaN # Alpha release
X.YbN # Beta release
X.YrcN # Release Candidate
X.Y # Final release
发布版本Post-releasesX.Y.postN
开发版本Developmental releasesX.Y.devN




安装
pip install packaging




初试
from packaging.version import Version, parse

v1 = parse('1.0a5')
v2 = Version('1.0')
print(v1)  # 1.0a5
print(v2)  # 1.0
print(v1 < v2)  # True
print(v1.epoch)  # 0
print(v1.release)  # (1, 0)
print(v1.pre)  # ('a', 5)
print(v1.is_prerelease)  # True
print(v2.is_prerelease)  # False
print(Version('1.0').post)  # None
print(Version('1.0').is_postrelease)  # False
print(Version('1.0.post0').post)  # 0
print(Version('1.0.post0').is_postrelease)  # True




解析字符串

parse() 返回 Version 对象




Version 对象

支持比较和排序,实现 PEP 440 定义的版本方案

参数含义
public公共版本号
base_version基本版本号,没有任何发布前或发布后标记
epoch版本周期整数
release基本版本号的整数元组
majorrelease的第一项
minorrelease的第二项
microrelease的第三项
pre预发布版本号的元组,第一项为a或b或rc,第二项为版本整数
is_prerelease是否为预发布版本
post发布版本
is_postrelease是否发布版本
dev开发版本
is_devrelease是否开发版本
from packaging.version import Version

version = Version('1!2.5.5.a1')
print(version.public)  # 1!2.5.5a1
print(version.base_version)  # 1!2.5.5
print(version.epoch)  # 1
print(version.release)  # (2, 5, 5)
print(version.major)  # 2
print(version.minor)  # 5
print(version.micro)  # 5
print(version.pre)  # ('a', 1)
print(version.is_prerelease)  # True
print()

version = Version('2.5.5.post2')
print(version.post)  # 2
print(version.is_postrelease)  # True
print()

version = Version('2.5.5.dev3')
print(version.dev)  # 3
print(version.is_devrelease)  # True




参考文献
  1. How do I compare version numbers in Python?
  2. packaging documentation
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588818.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号