python:为什么用子进程调用echo返回WindowsError 2?

时间:2012-06-07 13:58:36

标签: python windows subprocess

在我的程序中,我有一个函数runScript():

def runScript():
subprocess.call(['echo', 'hello'])

我在Python文档中看到过很多类似的例子,所以我认为这样可行。但是,当我在程序中调用此函数时,它会返回一个WindowsError。

WindowsError: [Error 2] The system cannot find the file specified

为什么会这样?我该如何解决?

1 个答案:

答案 0 :(得分:11)

echo命令内置于Windows shell cmd.exe。它不是可以在没有shell的情况下调用的外部程序。因此,您的subprocess.call()需要指定shell=True

subprocess.call('echo hello', shell=True)

(另外,shell会处理为你分割命令,所以我使用了更简单的单字符串传递命令的方式。)