path to python in venv

dn PythonList at DancesWithMice.info
Wed Sep 27 18:42:36 EDT 2023


On 28/09/2023 09.32, Jon Ribbens via Python-list wrote:
> On 2023-09-27, Larry Martell <larry.martell at gmail.com> 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.
> 
> The main point of the venv is to isolate the installed packages,
> rather than Python itself. I'm a bit surprised your symlinks are
> as shown above though - mine link from python to python3.11 to
> /usr/bin/python3.11, so it wouldn't change the version of python
> used even if I installed a different system python version.


"venv — Creation of virtual environments" 
(https://docs.python.org/3/library/venv.html) starts by saying:

«The venv module supports creating lightweight “virtual environments”, 
each with their own independent set of Python packages installed in 
their site directories.»

but later expands this with: «Used to contain a specific Python 
interpreter...» even though the primary use-case treats the system 
interpreter as the "base" Python/environment.

Time for some reading and proving appropriate combinations of options?


Over the years there have been various proposals to enable multiple 
versions of Python to exist concurrently on a single machine, notably 
Python2 + Python3 - but am failing to recall any official docs on 
Python3.n + Python3.m; eg "PEP 554 – Multiple Interpreters in the 
Stdlib" (https://peps.python.org/pep-0554/).

That said there's plenty of articles on-line (which may/not feature 
venv*) such as "Multiple Python interpreters" 
(https://developer.fedoraproject.org/tech/languages/python/multiple-pythons.html)

* although the OP didn't mention an OpSys, one poster did mention 
Fedora-Linux...


NB some of this info may be dated - it is some time since conducted this 
investigation (and decided not to use venv - apologies!)

Am currently using PyCharm (courtesy of recent teams' conventions) and 
it eases both problems (which interpreter, and which 
development-environment/activation steps) but in automating 'the boring 
stuff' it will be interesting to see if in-future, I notice when the 
project is based upon an older system!
FYI 
https://www.jetbrains.com/help/pycharm/installing-uninstalling-and-reloading-interpreter-paths.html
(I'd be surprised if the other major tool-sets don't offer something 
similar)

Disclaimer: JetBrains sponsor our local PUG-meetings with a door-prize.

-- 
-- 
Regards,
=dn


More information about the Python-list mailing list