Python安装位置(Windows)



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

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

由于我的安装程序使用我的附带解释器,sys.prefix指的是附带解释器(我知道这一点,因为我尝试过,我安装了Python 2.7和3.3)。

我还尝试使用subprocess.call:subprocess.call(['py', '-c', '"import sys; print sys.prefix"']),如果有标准Python解释器的话,它会使用标准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(),以查看调用的输出。

最新更新