path to python in venv

Mats Wichmann mats at wichmann.us
Wed Sep 27 16:09:41 EDT 2023


On 9/27/23 13:46, Larry Martell via Python-list wrote:
> On Wed, Sep 27, 2023 at 12:42 PM Jon Ribbens via Python-list
> <python-list at python.org> wrote:
>>
>> On 2023-09-27, Larry Martell <larry.martell at gmail.com> wrote:
>>> I was under the impression that in a venv the python used would be in
>>> the venv's bin dir. But in my venvs I see this in the bin dirs:
>>>
>>> lrwxrwxrwx 1 larrymartell larrymartell    7 Sep 27 11:21 python -> python3
>>> lrwxrwxrwx 1 larrymartell larrymartell   16 Sep 27 11:21 python3 ->
>>> /usr/bin/python3
>> ...
>>> Not sure what this really means, nor how to get python to be in my venv.
>>
>> WHy do you want python to be "in your venv"?
> 
> Isn't that the entire point of a venv? To have a completely self
> contained env? So if someone messes with the system python it will not
> break code running in the venv.

It can do that, it just turns out the defaults are to not make a 
dedicated Python instance, and to not give access to the system site 
packages.  The venv and virtualenv modules, at least, will let you 
override either of those defaults via command-line options at creation time.

Once a year I have virtualenvs break when the new Python version appears 
in Fedora, which is irritating, but I take the attitude that virtualenvs 
are disposable and (try to) not let it bother me that I forgot to deal 
with that ahead of time.   It helps if you make sure that a virtualenv 
has a record of its dependencies - perhaps a requirements.txt file in 
the project it's being used to build, so it's easy to recreate them.




More information about the Python-list mailing list