
On Tue, Feb 23, 2021 at 7:48 PM Random832 <random832@fastmail.com> wrote:
I was reading a discussion thread <https://gist.github.com/tiran/2dec9e03c6f901814f6d1e8dad09528e> about various issues with the Debian packaged version of Python, and the following statement stood out for me as shocking:
Christian Heimes wrote:
Core dev and PyPA has spent a lot of effort in promoting venv because we don't want users to break their operating system with sudo pip install.
[snip]
How is it that virtual environments have become so indispensable, that no-one considers installing libraries centrally to be a viable model anymore? Are library maintainers making breaking changes too frequently, reasoning that if someone needs the old version they can just venv it? Is there some other cause?
I can't speak for distributors or maintainers [1], but I can speak for myself as a user. I run Debian testing (currently bullseye as that is preparing for release) as my daily OS on my personal laptop, used for personal matters and school assignments (I'm a university computer science student in my senior year). I don't use the system Python for anything of my own, whether it's a school assignment or a personal project, precisely because I don't want to risk screwing something up. Rather, I maintain a clone/fork of the official CPython GitHub repo, and periodically build from source and `make altinstall` into `~/.local/`. The `python3` command continues to refer to the system Python, while `python3.8`, etc. refer to the ones installed in my home folder. To the latter I make symlinks for `py38`, `py39`, etc., and just `py` (and `pip`) for the one I use most often (usually the latest stable release). I typically have multiple versions installed at once since different scripts/projects run on different versions at different times. Given this setup, I can just do a simple `pip install spam` command and I don't need either `sudo` or `--user`, nor do I need virtual envs. While the average person would probably not clone the GitHub repo and build that way, it's not terribly unreasonable for an inclined person to do the same with a tarball downloaded from python.org, and so I doubt I'm the only one with this type of setup. Just some food for thought. [1] Technically I am a library maintainer since I have a couple projects on PyPI, but those are mostly unused and more or less abandoned at this point, and neither ever reached the point where I could consider graduating them from beta status. Most of what I work with these days is private personal code or school assignments.