R. David Murray <rdmurray@bitdance.com> added the comment: Well, it seems I was mistaken when I thought I knew how this worked :) Checking the os.exec documentation linked from the subprocess page, I see that when an environment is supplied PATH is indeed checked in it. The documentation for CreateProcess, however, indicates that PATH is ignored, and any extension must be supplied explicitly. At the very least the docs should be updated to clarify that execvpe is used when an environment is passed on posix, and to link to the CreateProcess docs. A discussion of PATH could perhaps be put in a note or footnote (probably footnote, there are enough notes already in those docs!) I'm not sure how one creates a good portability story out of these pieces. It doesn't seem as though there is any way to harmonize the two, since we are dealing with the semantics of system calls over which we have no control. For reference, here is (a?) link to CreateProcess docs that I found via Google: http://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx It doesn't look like the kind of link that one could trust to be stable, though, so I'm not sure if we should include it in the docs. I'm adding Brian Curtin as nosy to see if he knows whether or not there are permalink-like links to the relevant Microsoft documentation that we could use. ---------- nosy: +brian.curtin stage: -> needs patch title: subprocess PATH semantics -> subprocess PATH semantics and portability versions: +Python 2.7, Python 3.1, Python 3.2 _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue8557> _______________________________________