On Tue, Feb 23, 2021 at 4:51 PM Random832 <random832@fastmail.com> wrote:
Why is it that this community is resigned to recommending a workaround when distributions decide the site-packages directory belongs to their package manager rather than pip, instead of bringing the same amount of fiery condemnation of that practice as we apparently have for *checks notes* splitting parts of the stdlib into optional packages? Why demand that pip be present if we're not going to demand that it works properly?

The alternative to virtualenv is the solution most software takes for, eg, Java: Package a complete binary distribution internally to eliminate any dependency on the system package -- and allow the software to pollute their own package in any way they want without affecting the rest of the system, while potentially becoming very out of date with security patches. Virtualenv allows software to lockstep and pollute their own runtime of Python almost all they want while still sharing the actual base install that gets regular security and bugfix updates. (Of course, even the hint of possibility that anything about the runtime could change and cause downtime is too much for many enterprise Java systems, no matter how severe the security update, so even ported to Python they wouldn't settle for that, they'd still package the entire interpreter internally.)

Since telling application developers "no, don't do that, just get along" doesn't work, no matter how loudly you say it, virtualenv is a happy middle ground. A few core OS maintainers are much more likely to listen, so the yelling about splitting up or overly customizing the stdlib achieves results.

-Em