python和PEP440关于PEP440的警告有多严重?

2024-05-19 23:25:59 发布

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

我必须使用devstack infrastructure安装OpenStack,以便使用open vSwitch进行实验,并在日志中发现:

/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.

我在谷歌上搜索发现,PEP代表Python增强建议,而PEP440显然是一个特殊的建议,但我想知道这个警告有多严重,PEP440定义了什么


Tags: openstackversionlibpackagesusrdistsiteopen
3条回答

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

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

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

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

如果你只是等到下一个补丁,它就会消失

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

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

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

相关问题 更多 >