Essayez de coder en Python

stat4decision Mis à jour le : 12 janvier 2025 python Leave a Comment

Vous voulez découvrir le langage Python, tester un peu de code, utilisez notre JupyterLite, la possibilité de coder dans cet article et de récupérer les résultats.

C'est très simple, il vous suffit d'écrire du code et d'utiliser shift+enter (maj+entrée). Essayez, c'est juste en dessous :

Essayez de coller ce code :

import pandas as pd
df = pd.DataFrame({"a":[1,2,4], "b":["A", "B", "B"]})
df

Puis maj+entrée, vous affichez ainsi un DataFrame de Pandas.

Découvrir JupyterLite : Exécuter Python directement dans votre navigateur

JupyterLite est une version légère des environnements Jupyter, capable de s’exécuter directement dans le navigateur sans nécessiter de serveur dédié. Si vous êtes familier avec Jupyter Notebook ou JupyterLab, vous vous êtes certainement déjà demandé s’il était possible de partager vos notebooks sans imposer de lourdes installations à vos lecteurs.

C’est exactement là que JupyterLite entre en jeu : grâce à l'utilisation de technologies Web telles que WebAssembly et Pyodide, il permet d’exécuter du code Python dans le navigateur, localement, sans configuration serveur compliquée.

1. Qu’est-ce que JupyterLite ?

JupyterLite est une déclinaison de Project Jupyter développée pour fonctionner exclusivement côté client, c’est-à-dire dans le navigateur web. Contrairement à un Jupyter Notebook standard (qui repose sur un kernel Python s’exécutant sur un serveur), JupyterLite mobilise des technologies permettant d’émuler Python directement dans le navigateur.

Le nom « Lite » fait référence à la légèreté de l’application : aucune installation de Python ni de serveurs Jupyter n’est nécessaire. Il s’agit d’une application purement statique (HTML, CSS, JavaScript) hébergée sur un serveur web ou même sur GitHub Pages. Les dépendances Python classiques sont remplacées par un sous-ensemble fourni via Pyodide (une version de CPython compilée en WebAssembly).

2. Comment fonctionne JupyterLite sous le capot ?

L’ingrédient-clé au cœur de JupyterLite s’appelle Pyodide. Il s’agit d’un portage de l’interpréteur Python (CPython) en WebAssembly. WebAssembly (souvent abrégé en « Wasm ») est un format binaire que les navigateurs modernes peuvent exécuter avec de très bonnes performances, presque équivalentes à celles d’un code compilé natif.

Voici les éléments principaux qui entrent en jeu :

  1. Pyodide

    • Fournit un interpréteur Python en WebAssembly.
    • Permet de charger certaines bibliothèques Python courantes (NumPy, Pandas, Matplotlib, etc.), bien qu’il puisse y avoir des restrictions selon les versions.
    • Exécute le code Python directement dans le navigateur, en utilisant la mémoire locale.
  2. Kernels gérés par le navigateur

    • Avec un Jupyter Notebook classique, le kernel Python tourne sur une machine (locale ou distante), recevant les instructions depuis le client web.
    • Dans JupyterLite, le kernel (Pyodide) s’exécute directement dans votre navigateur, ce qui évite les échanges réseau.
  3. Interface Jupyter « classique »

    • JupyterLite offre une interface très proche de JupyterLab, avec la possibilité de créer des notebooks, éditer des cellules, exécuter du code, visualiser des graphiques, etc.
    • Les fonctionnalités d’autocomplétion, d’exploration des variables ou encore de terminal (limité) sont également disponibles.
  4. Stockage local

    • Par défaut, JupyterLite stocke vos notebooks dans le « Local Storage » de votre navigateur.
    • Il est également possible de configurer d’autres options pour la sauvegarde (GitHub Pages, etc.).

3. Quels sont les avantages et les limites de JupyterLite ?

Avantages
  • Zéro installation côté utilisateur : Vos lecteurs n’ont pas besoin de configurer Python ni Jupyter sur leur machine. Tout se passe dans le navigateur, ce qui facilite grandement le partage.
  • Facilité de déploiement : Vous pouvez héberger JupyterLite sur n’importe quel service de pages statiques (GitHub Pages, Netlify, Vercel, etc.). Pas besoin de serveurs ou de conteneurs spécifiques.
  • Performances raisonnables : Grâce à WebAssembly, l’exécution Python est plutôt rapide pour des tâches courantes, même si l’overhead reste plus élevé qu’une exécution en natif.
  • Expérience Jupyter familière : Pour qui connaît déjà l’interface JupyterLab/Notebook, la prise en main est immédiate.
Limites
  • Fonctionnalités Python limitées : Toutes les bibliothèques Python ne sont pas encore compatibles avec Pyodide. Les projets faisant appel à des dépendances C/C++ non supportées (ou trop lourdes) peuvent poser problème.
  • Taille de chargement : Pyodide pèse plusieurs dizaines de mégaoctets à télécharger, ce qui peut ralentir le temps de chargement initial.
  • Gestion de la persistance : Par défaut, les notebooks sont sauvegardés dans le stockage local du navigateur. Pour partager vos travaux ou collaborer, vous devrez configurer un système de stockage externe (ex. GitHub).
  • Moins adapté à de très gros calculs : Les ressources processeur et mémoire sont limitées par le navigateur. Pour de l’analyse de données très lourde ou du deep learning, mieux vaut recourir à un environnement Python classique ou à un cluster distant.

Conclusion

JupyterLite simplifie radicalement le partage de notebooks Python : plus besoin de configurations complexes ni d’installation côté utilisateur, tout s’exécute dans le navigateur grâce à Pyodide et WebAssembly. Même si les fonctionnalités restent un peu plus limitées qu’un Jupyter Notebook standard, c’est une solution idéale pour des démos, des tutoriels ou des mini-projets qui doivent être consultables par un large public.

En quelques clics, vous pouvez ainsi mettre à disposition de vos lecteurs des environnements Python interactifs, hébergés sur GitHub Pages ou autre plateforme de hosting de sites statiques. N’hésitez pas à essayer JupyterLite pour vos prochains projets pédagogiques, billets de blog ou démonstrations de code !

Partager cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.