从脚本获取python可执行文件的版本

时间:2019-03-13 20:01:07

标签: python subprocess version

我在服务器上安装了不同的python版本(从源代码)。现在,我希望能够从另一个python脚本(运行另一个python版本)获取python可执行文件的版本。

我知道我可以使用path/to/python -V从外壳中做到这一点。但我想通过脚本来做到这一点,例如:

command = ' '.join([pythonpath, '-V'])
output = subprocess.check_output( command, shell=True )
print output

但是在这种情况下, check_output 不能按预期工作:输出显示在终端中,但没有进入变量 output

1 个答案:

答案 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