我有一个系统与许多版本的Python。有些是32b一些64b,一些2.4一些2.7等。我正在使用一个需要运行另一个python脚本的python脚本。我想运行与运行初始脚本的python版本相同的第二个脚本。你如何找出python解释器在python中的位置?
我的计划是做这样的事情:
os.system('%s script.py' % currentPython)
的问题是:如何定义“currentPython”?
我有一个系统与许多版本的Python。有些是32b一些64b,一些2.4一些2.7等。我正在使用一个需要运行另一个python脚本的python脚本。我想运行与运行初始脚本的python版本相同的第二个脚本。你如何找出python解释器在python中的位置?
我的计划是做这样的事情:
os.system('%s script.py' % currentPython)
的问题是:如何定义“currentPython”?
Python解释器的路径为sys.executable
。
请使用subprocess
模块调用子解释器,而不是os.system()
。
sys.executable
包含您正在寻找的路径。但是,您不应该使用os.system
,因为该路径可能包含空格(例如在C:\Program Files\Python2.7\python.exe
中)。相反,使用subprocess.check_call
:
subprocess.check_call([sys.executable, 'script.py'])
使用sys.executable
。它给
一个字符串,给出了可执行二进制的 Python解释器,在系统中,这是有道理的绝对路径。
>>> import sys
>>> sys.executable
'C:\\Panda3D-1.7.2\\python\\python.exe'
>>>
什么是操作系统? Linux呢? – FakeRainBrigand 2012-02-14 20:34:14