iPython, c’est bon. Et ça peut être encore meilleur.
Avant on ajoutait un peu de sel à notre super shell en éditant les fichiers .ipython/ipythonrc et .ipython/ipy_user_conf.py. Mais ça c’était avant.
Maintenant on fait :
$ ipython profile create |
Ce qui va créer un fichier ~/.config/ipython/profile_default/ipython_config.py
(et ipython_qtconsole_config.py
si vous avez installé la version qt).
Il ne vous reste plus qu’à éditer ce fichier pour personnaliser le démarrage de iPython.
Executer du code au démarrage
N’importe quelle ligne de code Python ou de commande magique (les trucs qui commencent pas ‘%’ qui ne fonctionnent que dans iPython) !
Très utile pour les imports par exemple. Voici ce que je fais moi au démarrage :
c.TerminalIPythonApp.exec_lines = [ '%doctest_mode', 'import os, sys, re, json', 'from datetime import datetime, timedelta', ''' try: from path import path except ImportError: pass ''', ''' try: import requests except ImportError: pass ''', ''' try: from batbelt.structs import * from batbelt.objects import attr from batbelt.strings import slugify, normalize, json_dumps, json_loads except ImportError: pass ''' ] |
Du coup j’ai quasiment jamais besoin d’importer un truc, car ce que j’utilise le plus est déjà là. %doctest_mode
me permet de coller des docstrings sans me fouler.
Programmation graphique
iPython possède une boucle principale. Les toolkits graphiques aussi. Si vous faites vos essais du code du second dans le premier, ça va bloquer. Heureusement on peut demander à iPython d’intégrer la main loop d’un des toolkits graphiques les plus célèbres en choisissant parmi : ‘qt’, ‘wx’, ‘gtk’, ‘glut’, ‘pyglet’ et ‘osx’ et en settant :
c.TerminalIPythonApp.gui = 'qt' |
Virer le header
Quand on lance le shell, il vous raconte sa vie. Pour lui dire de fermer sa gueule :
c.TerminalIPythonApp.display_banner = False |
Lancer un script complet
Bon, ça c’est si vous avez de gros besoins…
c.TerminalIPythonApp.file_to_run = '/path/to/script.py' |
Sauter la confirmation à la fermeture
Oui, je suis sûr te vouloir te fermer connard ! Tu crois que j’ai appuyé sur Ctrl + d par erreur en éternuant ?
c.TerminalInteractiveShell.confirm_exit = False |
Choisir son éditeur externe
Si vous tapez %edit
dans iPython, il ouvre un éditeur. Vous tapez votre code, vous sauvegardez, vous fermez. Et iPython récupère le code et l’éxécute. Par défault il utilise VI. On peut faire mieux.
c.TerminalInteractiveShell.editor = '/chemin/vers/sublime-text -w' |
Ipython est vraiment génial. J’apprécie aussi la “version” disponible dans le navigateur. C’est peut être moins important pour des activités de dev classiques, mais en science, c’est très intéressant.
Ca se lance avec
ipython notebook --pylab inline
Un serveur web est lancé. On peut créer divers notebooks (*.ipynb). L’option –pylab permet d’avoir les lib scientifiques chargées. On peut ainsi avoir par ex des tracés directement intégrés aux calculs. Il y a aussi la possibilité de mettre des commentaires, titres etc avec une syntaxe markdown très appréciable. Last but not least, ça peut s’installer sur un serveur.
C’est vrai qu’en ce qui concerne certaines confirmation d’action (en outre de fermeture), j’en bénis certaine, j’en maudis beaucoup d’autre :D
Mais oui bordel que je veux te fermer ><
Je connaissais pas ipython sinon :) merci.
@François: c’est aussi très utile pour enseigner le Python. Notament, on peut voir le notebook de plusieurs élèves à distance.
Ah d’accord, c’est “IPython”, et non pas “iPython”.
Je connaissais pas du tout, avant d’avoir lu l’article. Du coup je me suis dit :
“C’est un iTruc, ça vient forcément de chez Apple. C’est peut-être un interpréteur python pour iPhone ? La fenêtre de console aura des bords ronds, et chaque ligne de code qu’on tape dedans devra être préalablement validée par l’App Store, dans un délai de deux semaines. Attention de ne pas nommer vos variables ‘nichons’, ‘terroriste’, ou ‘vive_les_PC’, il y a un filtrage automatique.”
Mais en fait non, rien à voir. C’est dommage, j’aurais aimé voir ça.
Salut a tous.
Entrain d’explorer bpython http://bpython-interpreter.org/screenshots/.
Quelqu’un a des avis a partager svp?
Dans le genre, il y a aussi Reinteract (http://www.reinteract.org/) qui permet d’avoir un fonctionnement un peu comme Maple : on peut modifier une commande lancée précédemment et actualiser les calculs suivants. Ça donne une session très interactive.
@lemeteore: c’est comme iPython, en plus léger. Il fait moins de truc, il est moins lourd.
@kontre: iPython permet de le faire depuis la version 0.11. Il faut installer ipython-qt et le lancer avec l’option ‘-qt’ et ‘-pylab’. On se retrouve avec un killer de mapple, matlap et aux trucs du genre.
@Sam: Vrai. Je n’ai malheureusement pas la possibilité d’enseigner en python, mais dans quelques années j’espère. :)
@kontre : peut être que sage math peut t’intéresser. Mais ipython avec les bonnes lib fait aussi l’affaire amha.