Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip 20.3 is unable to find (some?) wheel packages #9233

Closed
craigds opened this issue Dec 6, 2020 · 8 comments
Closed

pip 20.3 is unable to find (some?) wheel packages #9233

craigds opened this issue Dec 6, 2020 · 8 comments
Labels
C: wheel The wheel format and 'pip wheel' command project: vendored dependency Related to a vendored dependency

Comments

@craigds
Copy link

craigds commented Dec 6, 2020

Environment

  • pip version: 20.3.0 and 20.3.1
  • Python version: 2.7.16
  • OS: ubuntu 18.04 LTS

Description

Pip 20.3 finds & downloads the source tarball for pillow==6.2.2, rather than the wheel. Adding --only-binary :all: just makes it fail to find the package altogether.

Expected behavior

Pip 20.2.4 performs correctly and finds the wheel rather than the source tarball

How to Reproduce

Just try to install a specific pillow version.

$ pip download --no-cache-dir pillow==6.2.2
Collecting pillow==6.2.2
  Downloading Pillow-6.2.2.tar.gz (37.8 MB)
     |████████████████████████████████| 37.8 MB 34.1 MB/s
Saved ./Pillow-6.2.2.tar.gz
Successfully downloaded pillow
@uranusjr
Copy link
Member

uranusjr commented Dec 7, 2020

What is the wheel 20.2.4 finds for you? I suspect this is caused by a change in how pip (or rather, the underlying packaging.tags module) determines whether a wheel is compatible with your system.

Can you try the following under both 20.3.1 and 20.2.4 and paste the output?

from pip._vendor.packaging import tags
for t in tags.cpython_tags(): print(t)

@uranusjr uranusjr added state: needs reproducer Need to reproduce issue S: awaiting response Waiting for a response/more information labels Dec 7, 2020
@craigds
Copy link
Author

craigds commented Dec 7, 2020

20.2.4 finds Pillow-6.2.2-cp27-cp27mu-manylinux1_x86_64.whl

output of that snippet with 20.2.4:

cp27-cp27mu-manylinux2014_x86_64
cp27-cp27mu-manylinux2010_x86_64
cp27-cp27mu-manylinux1_x86_64
cp27-cp27mu-linux_x86_64
cp27-none-manylinux2014_x86_64
cp27-none-manylinux2010_x86_64
cp27-none-manylinux1_x86_64
cp27-none-linux_x86_64

and with 20.3.0:

cp27-cp27mu-manylinux_2_27_x86_64
cp27-cp27mu-manylinux_2_26_x86_64
cp27-cp27mu-manylinux_2_25_x86_64
cp27-cp27mu-manylinux_2_24_x86_64
cp27-cp27mu-manylinux_2_23_x86_64
cp27-cp27mu-manylinux_2_22_x86_64
cp27-cp27mu-manylinux_2_21_x86_64
cp27-cp27mu-manylinux_2_20_x86_64
cp27-cp27mu-manylinux_2_19_x86_64
cp27-cp27mu-manylinux_2_18_x86_64
cp27-cp27mu-manylinux_2_17_x86_64
cp27-cp27mu-manylinux2014_x86_64
cp27-cp27mu-manylinux_2_16_x86_64
cp27-cp27mu-manylinux_2_15_x86_64
cp27-cp27mu-manylinux_2_14_x86_64
cp27-cp27mu-manylinux_2_13_x86_64
cp27-cp27mu-manylinux_2_12_x86_64
cp27-cp27mu-manylinux2010_x86_64
cp27-cp27mu-manylinux_2_11_x86_64
cp27-cp27mu-manylinux_2_10_x86_64
cp27-cp27mu-manylinux_2_9_x86_64
cp27-cp27mu-manylinux_2_8_x86_64
cp27-cp27mu-manylinux_2_7_x86_64
cp27-cp27mu-manylinux_2_6_x86_64
cp27-cp27mu-linux_x86_64
cp27-none-manylinux_2_27_x86_64
cp27-none-manylinux_2_26_x86_64
cp27-none-manylinux_2_25_x86_64
cp27-none-manylinux_2_24_x86_64
cp27-none-manylinux_2_23_x86_64
cp27-none-manylinux_2_22_x86_64
cp27-none-manylinux_2_21_x86_64
cp27-none-manylinux_2_20_x86_64
cp27-none-manylinux_2_19_x86_64
cp27-none-manylinux_2_18_x86_64
cp27-none-manylinux_2_17_x86_64
cp27-none-manylinux2014_x86_64
cp27-none-manylinux_2_16_x86_64
cp27-none-manylinux_2_15_x86_64
cp27-none-manylinux_2_14_x86_64
cp27-none-manylinux_2_13_x86_64
cp27-none-manylinux_2_12_x86_64
cp27-none-manylinux2010_x86_64
cp27-none-manylinux_2_11_x86_64
cp27-none-manylinux_2_10_x86_64
cp27-none-manylinux_2_9_x86_64
cp27-none-manylinux_2_8_x86_64
cp27-none-manylinux_2_7_x86_64
cp27-none-manylinux_2_6_x86_64
cp27-none-linux_x86_64

@no-response no-response bot removed the S: awaiting response Waiting for a response/more information label Dec 7, 2020
@uranusjr
Copy link
Member

uranusjr commented Dec 7, 2020

Thanks, it seems like packaging dropped manylinux1 tags altogether somehow. I’ll raise this upstream and ask whether this is intended or a bug.

@uranusjr uranusjr added project: vendored dependency Related to a vendored dependency C: wheel The wheel format and 'pip wheel' command and removed state: needs reproducer Need to reproduce issue labels Dec 7, 2020
@uranusjr
Copy link
Member

uranusjr commented Dec 7, 2020

Hmm, on further inspection, I am not sure whether the current behaviour is a bug, or the previous version was. Could you open an issue on https://github.com/pypa/packaging and link to this issue, so we can continue the discussion there? I am not personally familiar with Linux enough to debug this issue.

@brainwane
Copy link
Contributor

Hmm, on further inspection, I am not sure whether the current behaviour is a bug, or the previous version was. Could you open an issue on https://github.com/pypa/packaging and link to this issue, so we can continue the discussion there? I am not personally familiar with Linux enough to debug this issue.

Is there now an open issue about this in https://github.com/pypa/packaging ?

@di
Copy link
Member

di commented Dec 9, 2020

@craigds One more thing, can you run:

from pip._vendor.packaging.tags import _get_glibc_version
_get_glibc_version()

@di
Copy link
Member

di commented Dec 9, 2020

I can't reproduce this on what I think is a compatible system:

$ docker run -it python:2.7 bash

root@7be50de3fd75:/# pip install -U pip
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting pip
  Downloading pip-20.3.1-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 8.2 MB/s
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.0.2
    Uninstalling pip-20.0.2:
      Successfully uninstalled pip-20.0.2
Successfully installed pip-20.3.1

root@7be50de3fd75:/# python
Python 2.7.18 (default, Apr 20 2020, 19:27:10)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from pip._vendor.packaging import tags
>>> for t in tags.cpython_tags(): print(t)
...
cp27-cp27mu-manylinux_2_28_x86_64
cp27-cp27mu-manylinux_2_27_x86_64
cp27-cp27mu-manylinux_2_26_x86_64
cp27-cp27mu-manylinux_2_25_x86_64
cp27-cp27mu-manylinux_2_24_x86_64
cp27-cp27mu-manylinux_2_23_x86_64
cp27-cp27mu-manylinux_2_22_x86_64
cp27-cp27mu-manylinux_2_21_x86_64
cp27-cp27mu-manylinux_2_20_x86_64
cp27-cp27mu-manylinux_2_19_x86_64
cp27-cp27mu-manylinux_2_18_x86_64
cp27-cp27mu-manylinux_2_17_x86_64
cp27-cp27mu-manylinux2014_x86_64
cp27-cp27mu-manylinux_2_16_x86_64
cp27-cp27mu-manylinux_2_15_x86_64
cp27-cp27mu-manylinux_2_14_x86_64
cp27-cp27mu-manylinux_2_13_x86_64
cp27-cp27mu-manylinux_2_12_x86_64
cp27-cp27mu-manylinux2010_x86_64
cp27-cp27mu-manylinux_2_11_x86_64
cp27-cp27mu-manylinux_2_10_x86_64
cp27-cp27mu-manylinux_2_9_x86_64
cp27-cp27mu-manylinux_2_8_x86_64
cp27-cp27mu-manylinux_2_7_x86_64
cp27-cp27mu-manylinux_2_6_x86_64
cp27-cp27mu-manylinux_2_5_x86_64
cp27-cp27mu-manylinux1_x86_64
cp27-cp27mu-linux_x86_64
cp27-none-manylinux_2_28_x86_64
cp27-none-manylinux_2_27_x86_64
cp27-none-manylinux_2_26_x86_64
cp27-none-manylinux_2_25_x86_64
cp27-none-manylinux_2_24_x86_64
cp27-none-manylinux_2_23_x86_64
cp27-none-manylinux_2_22_x86_64
cp27-none-manylinux_2_21_x86_64
cp27-none-manylinux_2_20_x86_64
cp27-none-manylinux_2_19_x86_64
cp27-none-manylinux_2_18_x86_64
cp27-none-manylinux_2_17_x86_64
cp27-none-manylinux2014_x86_64
cp27-none-manylinux_2_16_x86_64
cp27-none-manylinux_2_15_x86_64
cp27-none-manylinux_2_14_x86_64
cp27-none-manylinux_2_13_x86_64
cp27-none-manylinux_2_12_x86_64
cp27-none-manylinux2010_x86_64
cp27-none-manylinux_2_11_x86_64
cp27-none-manylinux_2_10_x86_64
cp27-none-manylinux_2_9_x86_64
cp27-none-manylinux_2_8_x86_64
cp27-none-manylinux_2_7_x86_64
cp27-none-manylinux_2_6_x86_64
cp27-none-manylinux_2_5_x86_64
cp27-none-manylinux1_x86_64
cp27-none-linux_x86_64

@craigds If you could tell us more about your platform/environment that this is being run in, it might help figure this out as well.

@uranusjr uranusjr added the S: awaiting response Waiting for a response/more information label Dec 10, 2020
@craigds
Copy link
Author

craigds commented Dec 11, 2020

thanks. I finally had some time to bisect our dockerfiles until I found the problem. Turns out we have no-manylinux1==1.0.0 in a requirements.txt file. Somehow that didn't prevent installing these wheels before, but now does with pip 20.3.

So basically the 20.3+ behaviour is correct 👍 thanks for triaging this

@no-response no-response bot removed the S: awaiting response Waiting for a response/more information label Dec 11, 2020
@craigds craigds closed this as completed Dec 11, 2020
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 6, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C: wheel The wheel format and 'pip wheel' command project: vendored dependency Related to a vendored dependency
Projects
None yet
Development

No branches or pull requests

4 participants