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

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


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).

Auteur(s)

Thierry T.

Thierry T.

Super Data Boy

Voir le profil

Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !

Notre équipe d'experts répond à toutes vos questions.

Nous contacter

Découvrez nos autres contenus dans le même thème

Baleine avec des conteneurs

Créer un environnement de revue avec Gitlab

Après avoir développé une nouvelle fonctionnalité pour votre application, le code est revue par l'équipe. Pour que le relecteur puisse mieux se rendre compte des changements, il est intéressant de mettre les changements à disposition dans un environnement de revue. Cet article va expliquer les étapes pour le faire avec Gitlab CI.

Comment tester son script Apache Spark avec Pytest ?

Tester son script Apache Spark avec pytest

Dans le domaine de la data, la qualité de la donnée est primordiale. Pour s'en assurer, plusieurs moyens existent, et nous allons nous attarder dans cet article sur l'un d'entre eux : tester unitairement avec Pytest.

Un long couloir fait à partir de données

Démarrer avec Apache Spark étape par étape

Le domaine de la data est présent dans le quotidien de chacun : la majorité de nos actions peut être traduite en données. Le volume croissant de ces données exploitables a un nom : "Big Data". Dans cet article, nous verrons comment exploiter ce "Big data" à l'aide du framework Apache Spark.