question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

On PyPy, binary wheels broken on pip==20.0.1

See original GitHub issue

Environment

  • pip version: 20.0.1
  • Python version: PyPy (tested with 7.2.0 and 7.3.0)
  • OS: tested on linux, likely affects other OS as well

Description If you try to install a manylinux wheel (such as the ones produced here), pip 20.0.1 complains:

xxx.whl is not a supported wheel on this platform.

pip==19.3.1 installs it correctly.

Expected behavior I would expect the wheel to be installed correctly 😃

How to Reproduce

First, download and install PyPy 7.2.0, and install pip==19.3.1:

$ wget -q  https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-linux64.tar.bz2
$ tar xf pypy2.7-v7.2.0-linux64.tar.bz2 
homer pip-bug $ ./pypy2.7-v7.2.0-linux64/bin/pypy -m ensurepip
[...]
homer pip-bug $ ./pypy2.7-v7.2.0-linux64/bin/pypy -m pip install -U pip==19.3.1
[...]
Successfully installed pip-19.3.1

Then, download and install a manylinux wheel: it works correctly:

$ wget -q https://antocuni.github.io/pypy-wheels/manylinux2010/psutil/psutil-5.6.5-pp272-pypy_41-manylinux2010_x86_64.whl

$ ./pypy2.7-v7.2.0-linux64/bin/pypy -m pip install psutil-5.6.5-pp272-pypy_41-manylinux2010_x86_64.whl 
[...]
Successfully installed psutil-5.6.5

Finally, upgrade to pip 20.0.1 and try again:

$ ./pypy2.7-v7.2.0-linux64/bin/pypy -m pip install -U pip==20.0.1
[...]
Successfully installed pip-20.0.1

$ ./pypy2.7-v7.2.0-linux64/bin/pypy -m pip install psutil-5.6.5-pp272-pypy_41-manylinux2010_x86_64.whl 
[...]
ERROR: psutil-5.6.5-pp272-pypy_41-manylinux2010_x86_64.whl is not a supported wheel on this platform.

I tried it with PyPy 7.3.0 as well, same result.

More info

I tried to debug it a bit. I managed to reduce the difference to this snippet:

from pip._internal import pep425tags
from pip._internal.models.wheel import Wheel

print 'Supported tags'
tags = pep425tags.get_supported()
for tag in tags:
    print '   ', tag

print
print 'File tags'
wheel = Wheel('psutil-5.6.5-pp272-pypy_41-manylinux2010_x86_64.whl')
for tag in wheel.file_tags:
    print '   ', tag

With pip==20.0.1, I get this:

Supported tags
    pp27-pypy_41-manylinux2014_x86_64
    pp27-pypy_41-manylinux2010_x86_64
    pp27-pypy_41-manylinux1_x86_64
    pp27-pypy_41-linux_x86_64
    [...]

File tags
    pp272-pypy_41-manylinux2010_x86_64

Note that “supported tags” start with pp27-, while “file tags” start with pp272-, so Wheel.supported returns False.

Issue Analytics

  • State:open
  • Created 4 years ago
  • Reactions:20
  • Comments:28 (19 by maintainers)

github_iconTop GitHub Comments

2reactions
tschijnmocommented, Jan 23, 2020

CMake installation via pip is broken with pip version >= 20 because of this issue.

I am not sure how prevalent it is, there are wheels like that for cmake that simply use pip as a platform and channel to distribute their manylinux binaries. These packages do not actually come with any Python or Python ABI requirements. Maybe it makes some sense to add new tags that makes the intention and requirements of these style of packages explicit.

1reaction
pfmoorecommented, Mar 16, 2020

@ncoghlan Are you still planning to look at this? The 20.1 release is due in April, and you mentioned above that there was potentially “a lot of work” here.

@antocuni If @ncoghlan doesn’t have time to work on this, the likely blocker is anyone having time to pick up the outstanding work here.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Binary wheels for PyPy
Hi, this is a short blog post, just to announce the existence of this Github repository, which contains binary PyPy wheels for some...
Read more >
Changelog - pip documentation v22.3.1
Deprecate `--no-binary disabling the wheel cache. ... Fix pip install --pre for packages with pre-release build dependencies defined both in pyproject.toml ...
Read more >
pip Changelog - pyup.io
Deprecate --no-binary`` disabling the wheel cache. ... Fix ``pip install --pre`` for packages with pre-release build ... Upgrade pytoml to 0.1.21
Read more >
Can pip list its binary wheels? - Stack Overflow
With the binary distribution installed ( pip install copyingmock ): $ pip show --files copyingmock Name: copyingmock Version: 0.1 Summary: A ...
Read more >
python2-pip-20.0.2-6.12.1 RPM for noarch - RPMFind
The pip>=20 wheel cache is not retro-compatible with previous versions ... setuptools) * Update pyparsing to 2.3.1 * Update pytoml to 0.1.20 ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found