Включена ли буферизация вывода по умолчанию в интерпретаторе Python для sys.stdout
?
Если ответ положительный, какие есть способы его отключения?
Предложения на данный момент:
- Используйте
-u
переключатель командной строки - Заворачивать
sys.stdout
в объект, который очищается после каждой записи - Установить
PYTHONUNBUFFERED
env var sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
Есть ли другой способ установить какой-либо глобальный флаг в sys
/ sys.stdout
программно во время выполнения?
-u
является то, что он не будет работать для скомпилированного байт-кода или для приложений с __main__.py
файлом в качестве точки входа.