Finding the right Python executable on Windows

Geoff Bache geoff.bache at gmail.com
Wed Jan 26 03:17:33 EST 2011


On Tue, Jan 25, 2011 at 3:24 PM, Brian Curtin <brian.curtin at gmail.com> wrote:
> On Tue, Jan 25, 2011 at 04:25, Geoff Bache <geoff.bache at gmail.com> wrote:
>>
>> Hi all,
>>
>> I have a Python process on Windows and would like to start a Python
>> subprocess using the same interpreter. I wonder how to go about this?
>>
>> First, I tried the obvious
>>
>> subprocess.Popen([ sys.executable, "subproc.py", ... ])
>>
>> but that fails, because my process has a "native launcher", (i.e. C:
>> \path\mylauncher.exe, which is just a wrapper around the Python
>> program) and hence sys.executable returns this path instead of the
>> interpreter location. It isn't appropriate to use the launcher for the
>> subprocess.
>>
>> I also tried using sys.exec_prefix but there didn't seem to be any
>> standard location for the interpreter under this directory in any
>> case.
>>
>> I feel certain there must be some way to do this as it seems a rather
>> basic thing somehow, can anyone give me a hint?
>>
>> Regards,
>> Geoff Bache
>
> If sys.executable doesn't work due to this "native launcher", you could
> try something like this:
>>>> import os
>>>> import sys
>>>> full_path = None
>>>> for path in sys.path:
> ...     full = os.path.join(path, "python.exe")
> ...     if os.path.exists(full):
> ...             full_path = full
> ...
>>>> full_path
> 'c:\\python31\\python.exe'

Thanks Brian!

It never occurred to me that the Python executable would be on
sys.path, but it seems to be on the installations I've tried on
Windows. It isn't on other platforms of course, but it's easy enough
to only do this on Windows.

I wonder why it's like this? I can't see anything in that directory I
could import...

Regards,
Geoff



More information about the Python-list mailing list