我在服务器上安装了不同的python版本(从源代码)。现在,我希望能够从另一个python脚本(运行另一个python版本)获取python可执行文件的版本。
我知道我可以使用path/to/python -V
从外壳中做到这一点。但我想通过脚本来做到这一点,例如:
command = ' '.join([pythonpath, '-V'])
output = subprocess.check_output( command, shell=True )
print output
但是在这种情况下, check_output 不能按预期工作:输出显示在终端中,但没有进入变量 output 。
答案 0 :(得分:1)
代码:
#!/usr/bin/python2
# -*- coding: utf-8 -*-
from subprocess import Popen, PIPE
if __name__ == '__main__':
cmd = '/usr/local/bin/python2'
param = '-V'
process = Popen([cmd, param], stdout=PIPE, stderr=PIPE)
process.wait()
# be aware, the order should be out, err for shell tools, but python reply shows in err, out, i've no idea why
err, out = process.communicate()
print out
输出:
Python 2.7.15