As far as I understand, the divergence between "Python upstream" and
- It looks like Debian target users consuming software, users just
install a package and it works, no venv needed obviously, it always just
work, it's fantastic. Users may not even care if the program is written
in Python or not at this point.
- Upstream Python is obviously composed by people writing in Python and
know many people who write some Python too: all in need of venv to work.
> Also, it's a disservice to push our users into the direction of using
> venv which is very ugly way to use Python in a Debian system
I do agree, we could even replace Python with software in this sentence.
And I don't think we're pushing our users to always install things in
venvs. Providing venv is not a big signal for Debian users to ask them
to use it to install packages (if a signal at all).
With my "I do write things in Python that may run on non-Debian systems"
hat, and "I teach Python" (most of them not using Debian) hat, a venv is
helping me in many many ways, it's literally part of my daily routine:
- It allows me to pin a set of dependencies and sub-dependencies to an
exact version (I do use pip-compile, from pip-tools), per project, that
I can use in automatic tests (ensuring if tests passes today, they'll
pass tomorrow), I can share this set with coworkers and future me ("if
it works for me, it works for you"), note my coworkers may not use
Debian at all.
- It allows me to easily replace a dependency with a modified one to
test it, or make anyone else test it (for example ).
- It allows me to work on my Debian testing laptop on code aimed to work
on Debian stable, or a completly different OS.
- It allows me to work on various projects with a different set of
So while I do agree that a *normal user* does not need a venv as I
myself appreciate, as a user, how fantastic it is to be able to install
a software using Debian packages, I still think venv is a very usefull
tool that I'm very happy to have in the Python stdlib and use daily.
(My current use of Python on Debian is: compile it myself, I need
multiple versions of Python for test purposes anyway.)
P.S.: If you still feel I'm completly wrong to use venv and pip in my
workflow, I'll be very happy to learn better ways.