Reputation: 6494
I had to install OpenStack using devstack infrastructure for experiements with open vSwitch, and found this in the logs:
/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.
I googled and found PEP440, but I wonder how serious is this warning?
Upvotes: 20
Views: 31845
Reputation: 71
This has become a fatal error in newer versions of pip(probably >=23). Need to migrate new projects to PEP-440 format, or keep using old pip versions.
Upvotes: 1
Reputation: 15359
Each Python package can specify its own version. Among other things, PEP440 says that a version specification should be stored in the __version__
attribute of the module, that it should be a string, and that should consist of major version number, minor version number and build number separated by dots (e.g. '2.7.8'
) give or take a couple of other optional variations. In one of the packages you are installing, the developers appear to have broken these recommendations by using the suffix '.gb329598'
. The warning says that this may confuse certain package managers (setuptools
and friends) in some circumstances.
It seems PEP440 does allow arbitrary "local version labels" to be appended to a version specifier, but these must be affixed with a '+'
, not a '.'
.
Upvotes: 13
Reputation: 8105
This warning isn't something that you really need to worry about, it's more of a warning for the developers.
It basically means that there is a module to identify version numbers (which ones are more recent, etc.) for tracking dependencies for PyPi (python's package host) and that the given version is in a format that isn't recognized.
If you just wait until the next patch it will go away.
Upvotes: 0
Reputation: 156268
As an end user, this shouldn't be a serious concern for you, it just means that, since the version number specified doesn't agree with the rules for python package versions, that the python packaging system cannot reliably discern which other versions of this package are before or after it.
In particular, its not specified if 2014.2.2.dev5.g...
should come before or after 2014.2.2.dev5
, since the rules don't say anything about what g
is supposed to mean.
this is not likely to affect you too much; since either are going to be dev
releases; and both strictly are between 2014.2.1
and 2014.2.2
Upvotes: 8