Python安装位置(Windows)

我需要找出是否在电脑上安装了Python。

我的具体问题是我正在发布一个自带解释器+标准库的程序(最终用户可能没有Python)。 在安装中,我可以select使用用户自己安装的Python解释器+库(如果有的话)。 不过,我需要那个位置。 我可以要求用户手动find它,但我希望有一个自动的方式。

由于我的安装程序使用我包含的解释器, sys.prefix指的是包含的解释器(我知道这是因为我试过了,我已经安装了Python 2.7和3.3)。

我也试过使用subprocess.call(['py', '-c', '"import sys; print sys.prefix"']) ,如果有的话会使用标准的Python解释器,不知道如何捕捉这个输出。

因此,有没有其他方法可以找出用户计算机上是否安装了默认的Python版本?

实际上,根据我的其他答案,找到Python安装目录的更好方法可能是检查Windows注册表,因为Python安装程序会在其中放置一些信息。

看看这个答案和这个Python模块 。

有些用户可能已经把他们的本地Python目录放到了系统的PATH环境变量中,有些甚至可能已经设置了PYTHONPATH环境变量。

你可以试试以下内容:

 import os if "python" in os.environ["PATH"].lower(): # Confirm that the Python executable actually is there if "PYTHONPATH" in os.environ.keys(): # Same as in the last if... 

至于subprocess.call(...) ,设置stdout参数为文件对象传递的东西,然后只是.read()你给的文件对象看到调用的输出。