O problema aqui é uma combinação das diferentes instalações do Python e o comportamento de "flushing" do Python.
Flushing refere-se a escrever algo da memória para o arquivo ou a tela. Quando um programa bem desenhado está escrevendo algo em uma tela, ele detecta isso e grava ("flush") na tela imediatamente, para que possa ser visto imediatamente. No entanto, se um programa estiver gravando em um arquivo no disco, fazer várias gravações pequenas em um arquivo é muito mais lento do que fazer um grande, então ele "armazena" pequenas gravações até que haja uma parte delas para liberar o arquivo em uma vez. Isso é o que o Python faz.
O problema que você está vendo é que o Python do Cygwin entende que o MinTTY é um terminal, e então o descarrega com freqüência, mas o Windows Python não pode dizer a diferença entre um terminal MinTTY e um arquivo no disco. Ele presume o que está gravando em um arquivo, por isso, ele grava as filmagens e libera-as em lotes (a reinicialização do aplicativo acionará isso), em vez de liberar cada mensagem como aparece. Se você esperasse o tempo suficiente (em um palpite, o suficiente para 64kb de mensagens a serem enfileiradas), você veria todas elas sendo escritas na tela de uma só vez também.
Existem duas soluções: encontrar uma maneira de contornar os problemas do MySQL para usar o Cygwin Python ou usar o Windows Python a partir de um shell do Windows cmd, que seria corretamente detectado como um terminal e produzir o fluxo correto comportamento.
Você também pode ter alguma sorte ao desativar o comportamento de buffer do Python. Se você executar o Python com uma opção -u
ou adicionar sys.stdout.flush()
após instruções de impressão, isso impedirá que o Python armazene mensagens e faça com que elas sejam exibidas na tela imediatamente.