Hi,

I've looked at what's going on, and the problem seems to be caused by
the fact that distlib 0.1.9 uses PEP426 and 0.2.0 uses PEP440; the
latter has an extra "epoch" field.

Because pip.util (in the version included with Debian) expects the
output not to have this epoch field, it breaks.

Downgrading python-distlib and python-distlib-whl to the version in
testing (0.1.9) makes pip and virtualenv work again.

Alternatively, updating to the latest pip (which is not yet available
in Debian) would probably fix this as well.

The third option would be to temporarily patch the current pip to
support both versions of distlib.  I've attached a patch (for
pip/util.py) that seems to work.

- Felix
--- util.py__BAK	2015-05-24 21:06:54.667012795 +0200
+++ util.py	2015-05-24 21:06:54.667012795 +0200
@@ -735,7 +735,10 @@
         # Cannot normalize, assume it is a pre-release
         return True
 
-    parsed = version._normalized_key(normalized)
+    if version._normalized_key.__name__ == "_pep_440_key":
+        parsed = version._normalized_key(normalized)[1:]
+    else:
+        parsed = version._normalized_key(normalized)
     return any([any([y in set(["a", "b", "c", "rc", "dev"]) for y in x]) for x in parsed])
 
 

Attachment: signature.asc
Description: Digital signature

Reply via email to