我需要知道计算机上是否安装了Python。
我的具体问题是我正在分发一个带有自己的解释器+标准库的程序(最终用户可能没有Python)。在安装中,我可以选择使用用户自己安装的Python解释器+库(如果有的话)。但是,我需要它的位置。我可以要求用户手动找到它,但我希望有一种自动方式。
由于我的安装程序使用了我的包含解释器,sys.prefix
引用了包含的解释器(我知道这是因为我试了一下,我安装了Python 2.7和3.3)。
我也尝试使用subprocess.call
:subprocess.call(['py', '-c', '"import sys; print sys.prefix"'])
如果有的话会使用标准的Python解释器,但我不知道如何捕获这个输出。
那么,有没有其他方法可以找出用户的计算机上是否安装了默认的Python版本以及在哪里?
答案 0 :(得分:2)
实际上,根据我的另一个答案,找到Python安装目录的更好方法可能是检查Windows注册表,因为Python安装程序会在那里放置一些信息。
答案 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()
设置文件对象,以查看调用的输出。