Wheel platform label changing with latest pex
See original GitHub issueWe are currently using pex 2.1.16, and one thing we noticed on trying to upgrade to the latest pex versions is the wheel label changing for the same version of the package in the same environment.
E,g.:
When building a pex that contains cryptography with pex-2.1.16, I see the label formed as follows -
cryptography-36.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
When building the same wheel in the same environment, with latest pex, I see the label formed as -
cryptography-36.0.1-cp36-abi3-manylinux_2_24_x86_64.whl
.
The version of glibc
hasn’t changed between the two, so why did pex pick/build 2_24
vs the older 2_17
?
I believe the --platform
option is somehow the answer, but it’s unclear how to specify enough platforms without creating an issue where pip is complaining that it couldn’t find a matching distribution. For example, if no platform was passed, some packages would resolve to the following label - py2.py3-none-any
, or cp37-cp37m-linux_x86_64
, etc.
Edit:
When I built a pex only for cryptography with --platform linux-x86_64-cp-37-m
, the old wheel label returned. However, I can’t install other packages because of the issue I described in the last para.
Any suggestions on getting around this problem?
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:9 (5 by maintainers)
Top GitHub Comments
I understand now. The behavior is out of your control, since it’s coming from
pip
directly.As for the main question - “can I ask why you’re asking?” We have two sets of folks on differing infrastructure. The developers on their newer laptops have the newer glibc versions, but some portions of our older infra does not. This is causing us to maintain two tracks of builds, and it would be much easier to just have one.
The
--complete-platform
looks interesting. My experience with the--platform
flag was a bit rocky, but this looks like the ideal way to sort that stuff out. Thanks for adding it!Ultimately, I think the right answer is to upgrade our infra, rather than spend time finding ways to keep it around.
Thanks again, and I appreciate your detailed answers.
@avadhanij6si I’m sorry for the huge delay on this. I saw you not directly mention a problem or error due to the change in resolving behavior which caused me to shy away from this each time I got back to my keyboard.
I’m going to close this as answered. If you need a feature in Pex to pick older manylinux wheels than your platform can actually handle or if you want a feature where Pex guarantees to never change its resolving behavior, then maybe re-open, but I’m really not seeing any way Pex could provide either of those. Definitely not the latter anyway.