Friday, April 29, 2011

How to get the python.exe location programmatically?

Basically I want to get a handle of the python interpreter so I can pass a script file to execute (from an external application).

From stackoverflow
  • I think it depends on how you installed python. Note that you can have multiple installs of python, I do on my machine. However, if you install via an msi of a version of python 2.2 or above, I believe it creates a registry key like so:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Python.exe

    which gives this value on my machine:

    C:\Python25\Python.exe

    You just read the registry key to get the location.

    However, you can install python via an xcopy like model that you can have in an arbitrary place, and you just have to know where it is installed.

    Gleb : If it is in App Paths you don't even need to know the location do you? ;)
  • This works in Linux, perhaps in Windows too?

    >>> import sys
    >>> print sys.executable
    /usr/bin/python
    
    Smashery : Yep - >>> import sys | >>> print sys.executable | C:\Python25\pythonw.exe
    FogleBird : Works on Mac OS X too.
    FogleBird : I think in a py2exe compiled app, it would point to the executable for the app, and not the python.exe. Someone would have to confirm though.
    John Montgomery : That only makes sense if you are already running the Python interpreter. I think he's trying to find the location from outside of Python itself.

0 comments:

Post a Comment