python和PEP 440这是什么?

2024-05-19 11:36:36 发布

您现在位置:Python中文网/ 问答频道 /正文

为了体验open vSwitch,我不得不使用devstack基础设施安装OpenStack,并在日志中发现:

/usr/lib/python2.7/site-packages/setuptools/dist.py:298: UserWarning: The version specified ('2014.2.2.dev5.gb329598') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.

我在google上发现PEP代表Python增强建议,PEP 440显然是一个特殊的建议,但是我想知道这个警告有多严重,pep440定义了什么?

另外,我对Python几乎一无所知。


Tags: openstackversionlibpackagesusrdist基础设施site
3条回答

作为一个最终用户,这不应该是一个严重的问题,它只是意味着,由于指定的版本号与python包版本的规则不一致,python打包系统无法可靠地识别这个包的其他版本在它之前或之后。

特别是,它没有指定2014.2.2.dev5.g...是否应该在2014.2.2.dev5之前或之后,因为规则没有说明g应该是什么意思。

这不太可能对你产生太大的影响;因为两者都将是dev释放;而且两者都严格地介于2014.2.12014.2.2之间

这个警告不是你真正需要担心的,它更多的是对开发人员的警告。

这基本上意味着有一个模块来标识版本号(哪些是最新的版本号,等等),用于跟踪PyPi(python的包主机)的依赖关系,并且给定的版本格式无法识别。

如果你只是等到下一个补丁消失。

每个Python包都可以指定自己的版本。除此之外,PEP440还指出,版本规范应该存储在模块的__version__属性中,它应该是一个字符串,应该由主版本号、次版本号和由点分隔的内部版本号(例如'2.7.8')组成,并给出或接受一些其他可选的变体。在您正在安装的其中一个包中,开发人员似乎使用后缀'.gb329598'破坏了这些建议。警告说,在某些情况下,这可能会混淆某些包管理器(setuptools和朋友)。

PEP440似乎允许将任意的“本地版本标签”附加到版本说明符,但是这些标签必须附加一个'+',而不是'.'

相关问题 更多 >

    热门问题