когда я запускаю эту команду подпроцесс из питона, похоже, питона киосков и никогда не выводит ничего:Subprocess Python Ошибка
msg = subprocess.call(['/Users/admirmonteiro/bin/Praat', '/Users/admirmonteiro/tmp/tmp.praat'])
, но когда я запускаю саму команду из терминала, он работает и закрывается, как должно :
Praat /tmp/tmp.praat
ли кто-нибудь может сказать мне, почему питон не заканчивал код и буксует и ничего не выводит?
спасибо!
вам нужно сделать что-то с стандартного ввода на стандартный вывод подпроцесса и STDERR ли? делает ли подпроцесс много выходных данных или ожидает ввода? Возможно, наследуя от родительского процесса, они заставляют подпроцесс думать, что есть данные для чтения, и поэтому он ждет, чтобы читать stdin? –
Нет, я не верю (вход в Praat - это tmp.praat), никакого вывода вообще нет, он фактически открывает инструмент praat и ожидает, что я запустим файл, и когда я сделаю вывод из подпроцесса команда. Я не хочу этого процесса. Я хочу, чтобы это было так, как будто я запускал его с терминала, который, когда я его называю, запускает Praat /tmp/tmp.praat и закрывается. – Aboogie
Работает ли она в командной строке, если вы запускаете что-то вроде «cat/dev/null | Praat /tmp/tmp.praat | cat»? Удивление, если процесс Praat обнаруживает tty stdin/stdout и ведет себя по-другому из-за этого. –