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.

Wheel platform label changing with latest pex

See original GitHub issue

We 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:closed
  • Created 2 years ago
  • Reactions:1
  • Comments:9 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
avadhanij6sicommented, Mar 15, 2022

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.

1reaction
jsiroiscommented, Mar 15, 2022

@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.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Unable to pex packages without whl in case platform is used
This is exactly the way to go here if you need to use --platform . You must prebuild missing wheels and then make...
Read more >
How to Connect PEX-A to PEX-B - Williams Plumbing
This method is quite simple. Since both sides of the transition will be insert-style, all you will need are crimp rings and a...
Read more >
How to Manage Python Dependencies in PySpark - Databricks
Learn more about how to manage Python dependencies and environments in your applications in Apache Spark by leveraging Conda, virtualenv and ...
Read more >
News - qBittorrent
PERFORMANCE: Move multiple torrents one by one (glassez); BUGFIX: Disable Torrent Queue by default for new users (an0n666); BUGFIX: Update free disk space...
Read more >
PEX Plumbing & Radiant Heating Systems - Zurn
Zurn PEX XL brass barbed fittings sized from 3/8"-2" are marked with the letter G: indicating the product is listed to.
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