python:为什么调用回声与subprocess返回WindowsError 2?

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

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

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

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

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

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

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

(另外,shell会为你分配命令,所以我使用了传递命令的简单的单一字符串风格。)