As far as I understand, the divergence between "Python upstream" and 
Debian is:

- 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 [1]).

- 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 
incompatible dependencies.

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

[1]: https://github.com/PyCQA/pylint/pull/3890#issuecomment-727591305

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.
[Julien Palard](https://mdk.fr)

Reply via email to