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