R. David Murray <rdmur...@bitdance.com> added the comment:

Changing the default value of shell is not an option anyway.

The behavior you describe is exactly what one should expect: the environment in 
which the executable is located is the environment of the process calling 
Popen, not the environment passed to Popen.  The environment passed to Popen is 
the environment in which the subprocess executes.  When using shell=True, this 
is the environment in which the shell executes, and the *shell* then looks up 
the executable in that new environment.  As far as I know this behavior is the 
same on both Windows and Unix, and thus is not a portability issue.  (How the 
shell works can be a portability issue, though.)

I'm not sure that this needs to be documented explicitly, as it is a logical 
consequence of how subprocesses work, but if you want to suggest a doc update 
I'll take a look at it.

I suspect your Unix example is about the fragility of the rules for computing 
sys.executable (there's an issue in the tracker about that...you may get a 
different result on trunk), but I haven't checked it.

----------
nosy: +r.david.murray
title: subprocess portability issue -> subprocess PATH semantics

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

Reply via email to