Python安装位置(Windows)

时间:2013-08-08 19:20:37

标签: python windows

我需要知道计算机上是否安装了Python。

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

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

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

那么,有没有其他方法可以找出用户的计算机上是否安装了默认的Python版本以及在哪里?

2 个答案:

答案 0 :(得分:2)

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

查看this answerthis Python module

答案 1 :(得分:1)

有些用户可能已将其本地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()设置文件对象,以查看调用的输出。