将子进程与使用另一个版本的脚本一起使用

Using subprocess with script using another version

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

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

import subprocess

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

我是 python 的新手,很抱歉我的理解不够

您可以使用您建议的方法。在 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 可执行文件的路径)。

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

的 shebang 行

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