У меня проблема с использованием subprocess.Popen или subprocess.call, когда я использую их для выполнения командных строк, которые генерируют много выходных данных, скрипты python зависают, но что странно, если после ожидания некоторое время, в то время как скрипт находится в подвешенном состоянии, я обнаружил, что задание, заданное строкой cmd, выполнено, и вывешен только скрипт.
subprocess.call(cmd, shell = True)
#OR
subprocess.Popen(cmd, stdout = subprocess.PIPE, stdin = subprocess.PIPE, shell = True)
# HANGS HERE
print "show something after subprocess"
Обратите внимание, что последняя печать никогда не выполняется, но на самом деле был выполнен cmd.
Обратите внимание, что cmd связан с последовательным портом, поэтому, когда я подключаю последовательный кабель, все становится хорошо, и выполняется последнее заявление о печати. Но когда я использую терминал, все в порядке, даже если последовательный порт подключен, это происходит только со скриптом Python.
Большое спасибо