Steve Dower <steve.do...@python.org> added the comment:

This is due to how Windows resolves relative paths when creating a new process. 
It *always* looks in the current application directory first, which with this 
setup will be the original Python executable rather than the venv redirector.

The best fix is to pass sys.executable instead of "python", which is more 
reliable on every OS and under every configuration. I've heard multiple people 
say that they prefer to launch venvs directly rather than modifying their 
environment in order to put it first on PATH.

If you are deliberately trying to use PATH to resolve the user's default 
"python" (which may not be in any way related to the one that's currently 
running), then use shutil.which() first and pass the full path to subprocess.

There's no bug to fix here, but if someone wants to add a section to the docs 
(and ideally, Mark or someone who has hit this problem can tell us which docs 
they read where they might have seen it) explaining that passing "python" to 
subprocess is a bad idea, feel free.

----------
assignee:  -> docs@python
components: +Documentation
nosy: +docs@python
versions: +Python 3.10, Python 3.9 -Python 3.7, Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue42041>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to