2016-03-29 2 views
0

Я пытаюсь настроить сборку на основе SCons.Как избежать смешанного выхода SCons с параметром -j?

Каждый строитель, который я использую, имеет более одного действия, которое может записываться на консоли с помощью sys.stdout.write().

Проблема в том, что выход консоли смешан с различными заданиями.

Есть ли исправление? Я хочу, чтобы все результаты консоли для конкретной работы были в том же месте после ее выполнения.

ответ

0

Вы пытаетесь получить доступ к тому же ресурсу (stdout) из нескольких процессов, которые работают параллельно ... для этого нет простого исправления (см. Также xargs: losing output when redirecting stdout to a file in parallel mode).

Что вы могли бы попробовать написать запись для каждого промежуточного действия во временный файл, а затем с последним действием напишите полный и агрегированный вывод из файла на stdout. Таким образом, у вас есть большие последовательные капли текста на выходе ... но вы также можете потерять некоторую информацию, когда промежуточное действие убивает сборку, например, бросая исключение. Тогда вы вообще не получите какой-либо вывод ... что делает отладку намного сложнее.

Смежные вопросы