Dave Abrahams <d...@boostpro.com> added the comment:

I wrote a Python script (enclosed) to methodically test how these things work, 
that doesn't rely on peculiarities of sys.executable.  The tests did reveal 
some notable differences on *nix and 'doze:

* When shell=False on windows you must launch the process using a full filename 
(e.g. "foo.exe", not just "foo", pass --invoke-filename to the script to enable 
that).  This may seem obvious to you, but for me it was surprising that one 
executable lookup function (looking in PATH) is in effect but not the other 
(extending unqualified executable names).  This should be spelled out in the 
docs.

* On *nix, with shell=False and the executable is neither in the PATH in the 
environment at the time of Python's launch nor in os.environ at the time of 
Popen, passing Popen an explicit env whose PATH includes the executable is 
enough to cause it to be found.  Not so on 'doze. 

* On 'doze, when the executable is in the PATH of os.environ but not in that of 
Popen's explicit env argument, even with shell=False, no Exception is raised 
(but returncode is nonzero)

----------
Added file: http://bugs.python.org/file17142/probe.py

_______________________________________
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