J'ai déjà touché un peu à Curse avec python sous Linux.
Je trouvais cette bibliothèque d'interface rudimentaire mais suffisante pour réaliser des applications en mode console (ce que nous avons déjà avec de vielle applications clipper qu'il faudra un jour ré-écrire).
Le Hic c'est qu'il n'existait pas de portage Python's curses sous Windows... jusqu'à assez récemment.
Donc, curses sous Python était uniquement cantonné au machine Linux... mais maintenant accessible sous Windows
Des binaires non-officiel pour Python sous Windows
En grattant une nouvelle fois sur le Net, j'ai trouvé
Où il propose justement des packages curses pour Windows.
Curses, an extension based on the PDCurses library.
Unicode characters are not supported.
- curses-2.2-cp27-none-win32.whl
- curses-2.2-cp27-none-win_amd64.whl
- curses-2.2-cp34-none-win32.whl
- curses-2.2-cp34-none-win_amd64.whl
- curses-2.2-cp35-none-win32.whl
- curses-2.2-cp35-none-win_amd64.whl
- curses-2.2-source.zip
whl est un fichier wheel (pythonwheels.com) est le nouveau standard de distribution des bibliothèque python qui remplacera à terme les fichiers .egg
Vous pouvez installer un fichier whl avec votre utilitaire pip.
Dans mon cas, j'ai utilisé la signe de commande suivante sous Windows:
c:\Users\Stock\Downloads>pip3 install curses-2.2-cp34-none-win32.whl Processing c:\users\stock\downloads\curses-2.2-cp34-none-win32.whl Installing collected packages: curses Successfully installed curses-2.2
Et j'ai pu utiliser du code curses suivant sous Windows
from curses import wrapper def main(stdscr): # Clear screen stdscr.clear() for i in range(0, 10): v = i-10 stdscr.addstr(i, 0, '10 divided by {} is {}'.format(v, 10/v)) stdscr.refresh() stdscr.getkey() wrapper(main)
Une chouette avancée pour le portage des applications d'une plateforme à l'autre... à voir si cela tient vraiment ses promesses.
Basé sur PDCurses
Le bibliothèque curse installée (celle mentionnée ci-avant) est basé sur PDCurses.
http://www.projectpluto.com/win32a.htm
Support des accentués sous Windows
Je me suis littéralement cassé les dents dès l'impression du premier texte contenant des accentués.
Voyez ce billet sur IndexError (http://indexerror.net/4170/python-3-4-curses-sous-windows-7-erreur-dencodage).
L'utilisation de différents code pages dans le système d'exploitation (voir le billet) ne simplifie rien... et même en passant ma console en cp1252 (comme supporté par curse puisque la doc mentionne qu'il utilise du local.preferredencoding() - soit cp1252 - pour l'encodage des chaine unicode)... curse détruit toujours l'affichage de mes accentués.
Au détour de différentes lectures (a confirmer), j'ai appris que cette bibliothèque curses utilise PDCurses s'appuie elle-même sur la SDL. La SDL qui, elle, n'intègre le support Unicode que depuis peu. C'est peut être normal que cela cafouille un peu.... et c'est franchement regrettable.