Python по-умолчанию буферизирует вывод, что иногда приводит к проблеме: строки выводятся не в том порядке. Это случается, например, при запуске python-скрипта в jenkins. Есть несколько способов отключить буферизацию.
-
Использовать опцию -u к интерпретатору.
python -u script.pyПри этом следующуая конструкция в начале скрипта работать не будет:
#!/usr/bin/env python -u -
Установить переменную окружения PYTHONUNBUFFERED
PYTHONUNBUFFERED=true python script.py -
В начале скрипта переоткрыть sys.stdout с размером буфера = 0
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)