将子进程与使用另一个版本的脚本一起使用
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 可执行文件明确指定为第一个列表元素。
我可以使用 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.
您最好将 python 可执行文件明确指定为第一个列表元素。