-
Notifications
You must be signed in to change notification settings - Fork 3k
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 doesn't handle PEP600 compatible manylinux wheels when --platform is specified. #10760
Comments
Side note: the command is actually being run as part of a deployment tool, pulling from a requirements file, but tricks like downloading the correct packages and using |
I was looking at PEP-600 and also concur that current behavior does not match my understanding of PEP-600.
and expect that the latest compatible wheel is fetched. |
cc: @pfmoore |
If somone wants to see this addressed, we'd be happy to accept a PR for this (subject to the regular code review process). The relevant file for this would be https://github.com/pypa/pip/blob/main/src/pip/_internal/utils/compatibility_tags.py, and I imagine that test improvements would be appreciated. |
A workaround is to specify all platforms that the target platform supports. Figuring out that list can be achieved using some variant of the below on the target-platform (and ignoring the message about not automatically parsing):
|
Sorry to post on an old bug, but I find myself in the impossible attempt to
For latest version of pyyaml the only command that will succeed is Unless I fully mention the The grep command above makes me believe that pip is trying ~20 names until it finds that one to be acceptable. Still, I see no way I can build the same fallback list when attempting to perform to call download. To give some insights, I am trying to download full list of dependencies for two different platforms (arm and intel) while avoiding to run under qemu as that makes the process 10x slower, this being the preparatory task for building a dual-arch container image. Basically I have the impression that |
#12466 It feels tangentially related (but a separate issue with |
As described in the Github [issue](pypa/pip#10760), `pip` fails to find a manylinux wheel when `--platform` is defined and there is no exact match. Add old platforms for the `pip` command when creating the data directory for the AWS Lambda function. This should resolved the dependency conflict observed in this [job](https://gitlab.adacore-it.com/it/iac/-/jobs/864195).
Description
When pip is asked to install or download a manylinux wheel and the
--platform
option is specified, it fails to find either tag aliases, or to download an "earlier" manylinux tag, if there was no exact match.The manylinux project defines the following legacy aliases in PEP 600:
... these tags should be equivalent to each other.
In addition, manylinux tags are supposed to be forward compatible - if a particular platform is specified, it should find the "latest" tag, if no exact match was found.
Expected behavior
pip downloads a compatible manylinux wheel.
pip version
21.3.1
Python version
3.8.10
OS
Ubuntu 20.04
How to Reproduce
(The problem affects any wheel on pypi, numpy was just chosen as a well known package)
The first five commands should find the same
manylinux2010
wheel, but only the first two commands do so.The last two commands should find the same
manylinux_2_17
wheel, but only the first command does so.Output
Code of Conduct
The text was updated successfully, but these errors were encountered: