python: ¿por qué llamar a echo con subproceso devuelve WindowsError 2?

En mi progtwig, tengo una función runScript ():

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

He visto muchos ejemplos similares en la documentación de Python, así que asumí que esto funcionaría. Sin embargo, cuando llamo a esta función en mi progtwig, devuelve un error de Windows.

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

¿Por qué pasó esto? ¿Cómo puedo arreglarlo?

El comando echo está integrado en el shell de Windows, cmd.exe . No es un progtwig externo que puede ser llamado sin el shell. Por lo tanto, su subprocess.call() necesita especificar shell=True .

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

(Además, el shell se encargará de dividir el comando por usted, así que he usado el estilo de cadena simple más simple para pasar el comando).