使用子进程和脚本使用另一个版本

时间:2015-05-06 09:34:31

标签: python subprocess

我可以使用用subprocess函数在python 3.3中编写的脚本在我的脚本和用2.7编写的另一个脚本之间创建管道吗?

如果答案是肯定的,我应该这样做吗?

import subprocess

output = subprocess.check_output(['scriptInV2.7.py', '-arg1', '-arg2'])
myFunctionInV3.3(output)

我对python很新,抱歉我缺乏理解力

2 个答案:

答案 0 :(得分:4)

您可以使用建议的方法。在shebang中指定python可执行文件(你需要并行安装python 2和3):

#! /usr/bin/env python2

和(在你的python 3调用脚本中):

#! /usr/bin/env python3

您可以在调用脚本时指定解释器:

output = subprocess.check_output(['/usr/bin/python2', 'scriptInV2.7.py', '-arg1', '-arg2'])

(使用python2可执行文件的路径更新)。

答案 1 :(得分:0)

是的,你可以这样做。但是check_output通常将可执行文件作为第一个参数,因此scriptInV2.7.py需要设置执行权限并且有一个调用python2.7的shebang行。

您最好明确指定python可执行文件作为第一个列表元素。