Python では,stderr がデフォルトでバッファリングされているようである.(cygwinからやっているのでそう見えるだけ??) stack overflow によると,以下のようにすれば良いそうだ.
import os
import sys
buf_arg = 0
if sys.version_info[0] == 3:
os.environ['PYTHONUNBUFFERED'] = '1'
buf_arg = 1
sys.stdout = os.fdopen(sys.stdout.fileno(), 'a+', buf_arg)
sys.stderr = os.fdopen(sys.stderr.fileno(), 'a+', buf_arg)
少なくとも,python 2.7 では,これでOKなようである.
keyword: standard error, standard out