Tengo un problema al usar el subproceso.Popen o subprocess.call cuando los uso para ejecutar líneas de comando que generan una gran cantidad de salida, los scripts Python se cuelgan, pero ¿qué es? raro que después de esperar un rato, mientras que el guión está en su estado colgando, me parece que el trabajo ordenado por la línea cmd se ha hecho, y sólo el guión está colgado.Python: subproceso.Popen y subprocess.call hang
subprocess.call(cmd, shell = True)
#OR
subprocess.Popen(cmd, stdout = subprocess.PIPE, stdin = subprocess.PIPE, shell = True)
# HANGS HERE
print "show something after subprocess"
Tenga en cuenta que la última impresión nunca se ejecuta, pero en realidad el cmd se ha ejecutado.
Tenga en cuenta también el cmd está relacionado con el puerto serie, por lo que cuando conecto el cable serie, todo se convierta en bien, y la última impresión statetement conseguir ejecutado. Pero cuando uso el terminal todo está bien, incluso si el serial está conectado, solo ocurre con el script de python.
Muchas gracias
No hay ningún problema usando 'subprocess.call' si usted no usa' subprocess.PIPE', que el PO no lo es. – interjay
No explica por qué el resultado de la instrucción 'print' no se muestra en el elemento principal. 'Popen()' no espera al hijo, incluso si el proceso hijo está bloqueado en un intento de escribir en el conducto con el búfer completo. – jfs