Issue 44982: Add vendor information (original) (raw)

In the effort of making the UX better with vendored Python versions, I think it would make sense to track and expose vendor information.

Initially, the vendor information would be comprised of two fields, the vendor string (eg. Debian) and the vendor name (eg. debian).

If specified, it would change the interpreter/installation in the following ways:

Additionally, I think we should add two new functions to the platform module, platform.vendor() and platform.vendor_name().

Overall, I think this would help out users identify the Python installation and avoid clashes between Python installations, even allowing parallel installations. If I remember everything correctly, this should fix Matthias issues with bpo-43976. Matthias, could you confirm?

Any thoughts?

[1] new IDLE shell output

Debian Python 3.9.6 (default, Jun 30 2021, 10:22:16) [GCC 11.1.0] on linux Type "help", "copyright", "credits" or "license" for more information.

A bunch of people, consisting of Filipe Lains himself, Geoffrey Thomas, Donald Stufft, Tzu-Ping Chung, Pradyun Gedam, Stefano Rivera, Elana Hashman, and myself (Matthias Klose), and with feedback from Carol Willing and Christian Heimes were preparing a PEP to address issues with vendored or system Python versions. It looks like Filipe was unable to give feedback or follow-up after the initial meetings at PyCon.

I am unsure if having two different interpreters is a good solution, and it certainly requires some cooperation with distros.

I am unsure if having two different interpreters is a good solution, and it certainly requires some cooperation with distros.

That is not the goal with this!

I think both this issue and the PEP are parallel. My goal here is to streamline the vendor patching of CPython, not propose parallel interpreters as an alternative.

Having discussed with you about your motivations and approach on packaging Python in Debian, I would definitely not expect you to adopt multiple interpreters in Debian. The way this proposal mostly functionally impacts Debian is by isolating its namespace from the normal one, allowing you to drop changes like the dist-packages renaming -- because pip install will write to /usr/local/lib/python3.9-debian/site-packages and /usr/local Python installs will be looking at /usr/local/lib/python3.9/site-packages) -- and if I am not missing anything, unblocking bpo-43976.