Retour

Découverte de IPython, un shell interactif avancé pour Python

13 juin 2022
3mn

IPython, qu'est-ce que c'est ?

IPython est un environnement de développement riche pour Python avec des fonctionnalités telles qu'un interpréteur interactif avec de l'auto complétion, un noyau pour Jupyter et du calcul parallélisé.

IPython permet de tester rapidement du code et de voir le résultat immédiatement.

Pour l'installer :

pip install ipython

Ensuite, lancer la commande suivante pour lancer le shell interactif :

ipython

Le shell IPython s'affiche, on peut entrer du code pour qu'il soit lu et évalué par l'interpréteur, puis pour que soit affiché le résultat. Dans cet exemple, je vais saluer wilson :

Python 3.8.10 (default, Mar 15 2022, 12:22:08) Type 'copyright', 'credits' or 'license' for more information IPython 8.3.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: print("Salut wilson !") Salut wilson !

Le résultat s'affiche dessous. Je peux entrer une fonction complète et l'exécuter. En tapant le début du nom de la fonction, je peux appuyer sur la touche <tab> du clavier pour lancer l'auto-complétion de la fonction.

In [2]: def salut_wilson(): ...: print("Salut Wilson !") ...: In [3]: salut_wilson() Salut Wilson !

IPython a des commandes magiques embarquées, qui facilitent son usage https://ipython.readthedocs.io/en/stable/interactive/magics.html.

Un shell applicatif

Lors du développement d'une application complexe, il y a de nombreux modules à charger avant de pouvoir faire ce que l'on souhaite. Dans une application avec une base de données avec des modèles sqlalchemy, il faut charger les modèles avant de les utiliser.

Pour éviter de le faire à la main à chaque lancement de IPython, il est possible de charger tous les éléments nécessaires et ensuite de lancer le shell interactif.

Dans mon fichier app.py, je mets les imports et les fonctions dont j'ai besoin.

# app.py import requests # ce module doit être installé dans votre projet : pip install requests def get_blog_eleven_labs() -> requests.Response: return requests.get("https://blog.eleven-labs.com")

Ensuite, je lance ipython avec le fichier app.py

ipython -i app.py

Ainsi, j'ai accès au module requests pour lancer des requêtes HTTP et à la fonction get_blog_eleven_labs().

% ipython -i app.py Python 3.8.10 (default, Mar 15 2022, 12:22:08) Type 'copyright', 'credits' or 'license' for more information IPython 8.3.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: resp = get_blog_eleven_labs() In [2]: print(resp.status_code) 200 In [3]:

Les notebooks Jupyter

Il n'est pas facile de partager du code produit dans la console IPython. Pour cela, le code sera écrit dans des notebooks Jupyter. C'est un format de fichiers texte qui stocke le contenu d'une cellule et son résultat. Cela permet également de documenter avec du markdown. Ainsi, le code peut être partagé plus facilement avec d'autre personnes.

L'interface Jupyter est quasiment identique à IPython. Il y a des cellules dans laquelle le code est lu, interprété et affiché. Tout est enregistré dans un fichier .ipynb.

Interface Jupyter

Github met en forme les notebooks Jupyter pour en faciliter la lecture. Par exemple : https://github.com/jdwittenauer/ipython-notebooks/blob/master/notebooks/ml/ML-Exercise1.ipynb

Conclusion

À travers cet article, nous avons fait la découverte d'un shell interactif alternatif : IPython. C'est un outil très utilisé en Python et ses fonctionnalités le rendent plus simple à utiliser par rapport au shell natif. Avec les notebooks Jupyter, le code est plus facilement partagé. Il permet également l'affichage de graphiques pour l'analyse de données. Cette dernière fonctionnalité est très utilisée par les métiers de la data (data analyst, data scientist).


Articles sur le même thème

Construction d'une plateforme Data, retour d'expérience (REX)

Les besoins en analyse de données sont grandissants. Avec quelques outils, il est possible de faire des extractions, de la transformation et de la visualisation très rapidement. Cependant, pour assurer la pérénnité et l'évolutivité de ces analyses, il est nécessaire de monter une plateforme dédiée et d'industrialiser les différents processus. C'est le sujet de cet article.

14 nov. 202311mnThierry T.

Explorer la donnée pour optimiser ses coûts d'électricité

Et si on mettait en pratique quelques réflexes d'analyse de données, pour faire de meilleurs choix au quotidien ? On pourrait peut-être ainsi mieux sélectionner son forfait chez notre fournisseur d'électricité par exemple...

8 nov. 202221mnThierry T.

Organiser son pipeline Gitlab CI avec les templates

Lorsqu'il y a plusieurs services à maintenir et à déployer, le code des pipelines des différents services est très souvent copié-collé. Nous verrons dans cet article comment mutualiser le code !

26 avr. 20225mnThierry T.

Découvrez Eleven Labs

L'ESN qui fait décoller vos projets web, mobile & data !

Voir le site web

Contact

Eleven Labs - Paris

102, rue du Faubourg Saint Honoré

75008 Paris

Eleven Labs - Nantes

40, rue la Tour d'Auvergne

44200 Nantes

Eleven Labs - Montréal

1155, Metcalfe St Suite 1500

Montréal, QC H3B 2V6, Canada