Le vrai problème est que lorsque vous exécutez une commande du terminal Cygwin des programmes comme mintty, ils n'agissent pas comme Windows Consoles. Seulement Windows basée sur une Console comme la CMD ou Console2 le faire. Ainsi, avec Cygwin terminaux Windows python.exe ne pense pas qu'il est en train de parler d'une console interactive.
Qui conduit à la mise en mémoire tampon de sortie au lieu de vidage des tampons sur chaque ligne, comme cela se fait dans des sessions interactives. C'est pourquoi Amro ajout de la méthode flush() sur chaque ligne résout le problème, mais le moyen de changer le code.
Une solution sans changer le code pour désactiver la mise en mémoire tampon en Python à l'aide de l'option '-u' drapeau sur la ligne de commande ou de réglage de la PYTHONUNBUFFERED variable d'environnement.
export PYTHONUNBUFFERED=1
/cydrive/c/Python27/python.exe foo.py
ou
/cydrive/c/Python27/python.exe -u foo.py
ou exécuter en mode interactif
/cydrive/c/Python27/python.exe -i foo.py
Vous pourrez également ne pas être en mesure d'exécuter le Windows python.exe le mode interactif dans le terminal Cygwin. Il ne sera pas ouvrir une session interactive, mais il suffit de le pendre. J'ai trouver la meilleure solution semble être l'utilisation de 'cygstart' (mieux que d'utiliser l'option '-i'):
cygstart /cygdrive/c/Python27/python.exe
Et qui semble fonctionner avec ipython (si installé):
cygstart /cygdrive/c/Python27/Scripts/ipython.exe