Python subprocess.Popen - добавление флагов GCC приводит к ошибке «нет входных файлов» - PullRequest
2 голосов
/ 19 сентября 2009

Я создаю скрипт Python для автоматизации моего процесса сборки, который вызывает GCC с использованием subprocess.Popen. Моя первоначальная попытка работает нормально.

>>> import subprocess
>>> p = Popen(['gcc', 'hello.c'], stdout=subprocess.PIPE, stderr=stderr=subprocess.STDOUT)
>>> p.wait()
0
>>> p.communicate()
('', None)

Однако, когда я передаю дополнительные параметры в GCC, я получаю сообщение об ошибке «нет входных файлов», как показано ниже:

>>> import subprocess
>>> p = Popen(['gcc', '-o hello hello.c'], stdout=subprocess.PIPE, stderr=stderr=subprocess.STDOUT)
>>> p.wait()
1
>>> p.communicate()
('gcc: no input files\r\n', None)

Есть идеи, что может быть причиной этой проблемы?

1 Ответ

6 голосов
/ 19 сентября 2009

Разве это не должно быть

p = Popen(['gcc', '-o', 'hello', 'hello.c'], stdout=subprocess.PIPE, stderr=stderr=subprocess.STDOUT)
...