Я создал графический интерфейс, который запускает команду в терминале Linux.Пропуск Терминал вывода в GUI
Пример => -n 20 -id 15 -области квадрат (10,20) -dim 2 -o исполнение -format гео, Тесс
Эта команда предназначена для выполнения кода для пакет. И когда он выполняет серию выходов, проходит в терминале Linux. Результат либо успешный, либо генерируется вывод, либо возникает ошибка из-за ошибки дампа или плохого аргумента.
Примеры терминальных выходов:
Ошибка: matheval не удалось обработать выражение. Синтаксис выражения , вероятно, неверен. Это может также быть вызвано некачественной установкой Matheval (выражение = 1 -ori fiber (,,)). Отменено (ядро сбрасывали)
Другая ошибка
Ошибка: Плохие аргументы! Прерванный (ядро сбрасывали)
Что я пытаюсь сделать, это вернуть эту ошибку обратно в GUI или как MessageBox и/или обновить нижнюю Строка состояния графического интерфейса с ошибкой.
Я не знаком с модулями wx и subprocess, но до сих пор мои исследования не нашли решения.
Я запускаю Python 2.7 и используя Tkinter.
Если ваша проблема с Tk, [это может помочь] (http://stackoverflow.com/questions/17280637/tkinter-messagebox-without-window). –
Если ваша проблема связана с захватом 'stderr' вашей команды Linux Terminal, вам, вероятно, понадобится' subprocess.Popen() 'с' stderr = subprocess.PIPE'. Например, попробуйте: 'p = subprocess.Popen ('/ bin/cat /bad_path'.split(), stderr = subprocess.PIPE)', за которым следует 'sout, serr = p.communicate()'. –
@BrianMcFarland благодарю вас за это. Я понимаю, что мне нужно передать команду, которую я использую в Popen > p = subprocess.Popen (['neper', '-T', '-format', output_form, '-n', n, '-id ', id,' -dim ', dim, reg], stdout = subprocess.PIPE) , потому что это создает ошибку в терминале, хотя синтаксис команды верен. –