Windows上的subprocess.call未启动第二个文件

时间:2013-03-20 11:47:26

标签: python windows subprocess

我正在调整我在Linux for Win 7上编写的代码。

在Linux上它是:

subprocess.call(['./myscript.py', arg1, arg2, arg3])

它是从壳牌推出的,一切正常。 对于Windows(我在Idle使用Python)我做到了:

subprocess.call(['myscript.py', arg1, arg2, arg3],  shell=True)

似乎没有启动任何东西,但是没有给我任何错误。我尝试使用pdb.set_trace()调试该函数,并且myscript.py中的检查点未显示。

1 个答案:

答案 0 :(得分:1)

在评论和链接问题中,在Windows中你不能简单地执行python脚本,你还需要提供python可执行文件的路径。由于您已经在使用python,因此只需使用sys.executable

即可找到可执行文件的位置
import sys

p = subprocess.Popen([sys.executable, 'myscript.py', arg1, arg2, arg3])

输出通过管道传输到stderrstdout - 要查看它,您还需要communicate

(stdoutdata, stderrdata) = p.communicate()

print stdoutdata, 
print stderrdata