2

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

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

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

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

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

4

2 回答 2

3

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

看看这个答案这个 Python 模块

于 2013-08-08T19:39:17.633 回答
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()设置您提供的文件对象以查看调用的输出。

于 2013-08-08T19:32:21.627 回答