Unfortunately, that wouldn't work. Activating a virtual environment
means setting some env vars in the current shell, and Python is
fundamentally unable to do that - it can only be done within the shell
itself (by sourcing a script).

You can, of course, simply run the Python executable from that venv,
but activation is *by its nature* a shell feature, and will differ by
shell.

ChrisA

It's somewhat easy


def activate_on_linux():
    sys.subprocess([sys.executable, ...])

def activate_on_win():
    sys.subprocess([sys.executable, ...])

def activate_on_mac():
    sys.subprocess([sys.executable, ...])

def activate_on_solaris():
    sys.subprocess([sys.executable, ...])

if sys.platform == linux:
    activate_on_linux()

etc

I believe this is used somewhere else in CPython.
Recently sys.executable replaced python

Kind Regards,

Abdur-Rahmaan Janhangeer
about <https://compileralchemy.github.io/> | blog
<https://www.pythonkitchen.com>
github <https://github.com/Abdur-RahmaanJ>
Mauritius


>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/DCMG6SNAPS3NMQZZT3LDW4O6JQIOEFOK/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to