On 28/09/2023 09.32, Jon Ribbens via Python-list wrote:
On 2023-09-27, Larry Martell <larry.mart...@gmail.com> wrote:
On Wed, Sep 27, 2023 at 12:42 PM Jon Ribbens via Python-list
<python-list@python.org> wrote:
On 2023-09-27, Larry Martell <larry.mart...@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
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to