Bac à sable Python
Exécutez Python 3 dans votre navigateur via Pyodide (CPython sur WebAssembly). Stdlib complète, pip via micropip, session persistante, hors ligne après premier chargement.
Bac à sable Python - Exécuter Python en ligne gratuitement
Python est le langage de programmation le plus enseigné au monde et l'outil dominant de la data science, du machine learning, du calcul scientifique, du scripting système et du back-end web rapide — mais chaque débutant passe sa première heure à se battre avec une installation locale : quel interpréteur (Python système, Anaconda, pyenv ?), quelle stratégie venv, quel IDE, où est pip. Ce bac à sable saute tout cela. L'interpréteur CPython entier a été compilé en WebAssembly par le projet Pyodide de la Mozilla Foundation (utilisé dans JupyterLite, la doc Pandas, et des dizaines de plateformes éducatives) et chargé directement dans votre onglet navigateur. Après un téléchargement unique d'environ 6 Mo la première fois, chaque exécution suivante est instantanée et fonctionne entièrement hors ligne. Vous obtenez Python 3.11+ avec la bibliothèque standard complète — os, sys, math, json, datetime, re, collections, itertools, functools, statistics, random — plus l'option de charger NumPy, Pandas, SciPy, Matplotlib, scikit-learn, sympy et autres gros paquets de data science à la demande via micropip. Le contexte d'exécution persiste entre les runs (définissez une fonction, puis appelez-la plus tard sans la redéfinir), le système de fichiers est virtuel dans votre navigateur, et les seules choses qui ne fonctionnent pas sont les appels réseau (urllib/requests/socket), les toolkits GUI natifs (Tkinter, PyQt), et les paquets avec extensions C non portées en WASM.
Qu'est-ce que le bac à sable Python ?
Il s'agit d'un interpréteur Python 100% navigateur basé sur Pyodide. Il permet de :
- Lancer du code sans installer Python
- Tester des extraits en quelques secondes
- Apprendre Python de façon interactive
- Expérimenter et déboguer
- Continuer à travailler hors ligne après le premier chargement
La plupart des fonctionnalités Python 3.x et de la bibliothèque standard sont disponibles.
Comment utiliser cet outil ?
Mode d'emploi :
1. Attendez le chargement initial de Pyodide
2. Saisissez ou collez votre code dans l'éditeur
3. Cliquez sur "Exécuter le code"
4. Analysez le résultat dans la console
5. Utilisez "Effacer" pour nettoyer l'éditeur
6. Chargez les exemples intégrés pour progresser plus vite
L'environnement persiste entre deux lancements : variables et fonctions restent disponibles jusqu'à la réinitialisation.
Quelles fonctionnalités Python sont gérées ?
La sandbox supporte la majorité de Python 3.x :
- Syntaxe complète (variables, boucles, conditions)
- Fonctions, classes et objets
- Listes, dictionnaires, ensembles, tuples
- Manipulation de chaînes et formatage
- I/O fichiers via le système virtuel
- Bibliothèque standard (majoritairement)
- Gestion des exceptions
- Décorateurs, générateurs et compréhensions
Limites :
- Pas de requêtes réseau (fetch, urllib)
- Pas de GUI (tkinter, pygame)
- Threading restreint
- Certains modules avec extensions C sont indisponibles
Mon code est-il privé ?
Oui :
- Tout s'exécute localement dans votre navigateur
- Aucun code n'est envoyé vers nos serveurs
- Aucune journalisation ni collecte
- Fonctionne hors ligne après chargement
- L'environnement Pyodide est isolé et ne peut pas accéder à votre système
Votre code reste donc confidentiel.

Puis-je installer des packages ?
Pyodide inclut de nombreux modules. Pour installer d'autres packages :
- Les bibliothèques purement Python fonctionnent souvent
- Celles qui nécessitent des extensions C peuvent échouer
- Utilisez `micropip` pour installer depuis PyPI
Exemple :
import micropip
await micropip.install('package-name')
Tous les packages PyPI ne sont pas encore compatibles.
Pourquoi mon requests.get() ou urllib échoue avec une erreur de pas d'internet ?
Parce que Pyodide s'exécute dans le bac à sable WebAssembly du navigateur, qui par conception n'a PAS d'accès direct aux sockets réseau. La bibliothèque 'requests' et urllib sont construites sur des sockets TCP bruts, que le bac à sable n'expose pas. Deux contournements : (1) Utilisez pyodide.http.pyfetch, qui enveloppe l'API fetch() native du navigateur et fonctionne pour HTTP/HTTPS. Remplacez 'requests.get(url).json()' par 'await pyodide.http.pyfetch(url).then(r => r.json())' (en contexte async). (2) Installez le paquet patch aiohttp-wasm ou 'pyodide-http' qui patche requests pour router via fetch en coulisses. Le serveur distant doit toujours envoyer des en-têtes CORS (Access-Control-Allow-Origin) sinon le navigateur bloquera la réponse — c'est une règle de sécurité du navigateur, pas une limitation Pyodide. Pour l'expérimentation purement locale, simulez la réponse API avec un dict et sautez complètement l'appel HTTP.
Puis-je utiliser NumPy ou Pandas dans ce bac à sable ?
Oui. Les deux sont des paquets Pyodide pré-construits et se chargent à la demande via micropip — pas d'étape de compilation. Exécutez ceci une fois dans votre code :
import micropip
await micropip.install(['numpy', 'pandas', 'matplotlib'])
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
La première installation prend quelques secondes (télécharge ~10-20 Mo de binaires compilés en WASM) mais est ensuite cachée pour toujours. Après cela, les opérations d'array NumPy s'exécutent à une vitesse proche de native (le NumPy de Pyodide est véritablement rapide), les DataFrames Pandas fonctionnent normalement, et Matplotlib rend du SVG/PNG que vous pouvez afficher via plt.show() — les hooks d'affichage de Pyodide rendent l'image directement dans le panneau de sortie. La liste complète des paquets scientifiques pré-construits inclut scipy, scikit-learn, sympy, statsmodels, networkx, pillow, beautifulsoup4, lxml, regex, et bien d'autres. Consultez pyodide.org/en/stable/usage/packages-in-pyodide.html pour l'index complet.
À quoi servent les exemples de code ?
Ils accélèrent votre apprentissage :
- Comprendre rapidement la syntaxe Python
- Observer des patterns prêts à l'emploi
- Tester des structures de données courantes
Les exemples couvrent :
- Hello World
- Boucles et conditions
- Fonctions
- Listes et dictionnaires
- Classes et POO
Un clic charge l'exemple dans l'éditeur pour l'exécuter immédiatement.
Fonctionnalités clés
- Exécuter du Python 3.x dans le navigateur
- Aucune installation ni inscription
- Résultats instantanés dans la console
- Éditeur avec coloration syntaxique
- Exemples prêts à l'emploi
- Messages d'erreur et stack trace
- Mesure du temps d'exécution
- Téléchargement du code en .py
- Nettoyage et réinitialisation rapides
- Fonctionne hors ligne après chargement
- 100% côté client : votre code ne quitte jamais le navigateur
- Mode sombre disponible
- Interface responsive adaptée au mobile
- Propulsé par Pyodide (CPython en WebAssembly)
