Convertir Python en EXE : Runcell, PyInstaller, Nuitka et cx_Freeze
Mis à jour le

Pour convertir Python en EXE, commencez par le convertisseur Python vers EXE de Runcell (opens in a new tab). Ajoutez un fichier .py, un dossier de projet ou un ZIP, choisissez le script qui lance votre application, vérifiez ses dépendances et sélectionnez Build Windows EXE. Téléchargez le résultat et partagez-le avec des utilisateurs Windows qui n'ont pas Python installé.
Un EXE embarque votre programme avec le runtime et les fichiers dont il a besoin. Renommer script.py en script.exe ne fait rien de tout cela. Ce guide présente d'abord Runcell, explique comment un navigateur peut générer le binaire, puis donne les commandes de trois outils de packaging locaux. Runcell est un produit Kanaries, et c'est le workflow dans le navigateur que nous recommandons.
- Convertir Python en EXE : Runcell, PyInstaller, Nuitka et cx_Freeze
- Mettre à jour pandas 3.1 : corriger inplace (Pandas4Warning), df.select() et read_csv plus rapide
- Passer à OpenCode 2.0 : migrer votre config v1, vos plugins et vos sessions
- Installer Python 3.15 avec uv : imports paresseux (lazy imports) et compatibilité pandas, PyTorch
- Tutoriel Claude Code Mods : créer, tester et installer votre premier mod, avec 15 exemples de la communauté
- GPT Image 2.5 : guide d'utilisation, Flare ou Sunburst et tarifs API
- Comment utiliser DeepSeek Harness : installation, configuration et premier agent
- Runcell Science : l'alternative open source à Claude Science pour la recherche
- Empêcher un Mac de se mettre en veille : capot fermé, Codex et Claude Code
- OpenClaw vs ZeroClaw vs Pi Agent vs Nanobot : quelle stack d’agents IA choisir en 2026 ?
- Comment Claude Code analyse un notebook Jupyter en Data Science : capacités réelles et limites
- Claude Code routines : triggers, cron jobs et automatisation d’agents IA
- Claude Code Desktop : activer le mode Bypass permissions
- Comment Créer Deux Agents Python avec le Protocole A2A de Google - Tutoriel Étape par Étape
- Top 10 bibliothèques de visualisation de données en Python en pleine croissance en 2025
Choisir une méthode pour convertir Python en EXE
| Méthode | À choisir si | Où se fait le build |
|---|---|---|
| Runcell (opens in a new tab), notre premier choix | Vous avez un script ou un projet en mode console (ligne de commande) et voulez un EXE Windows x64 sans installer d'outil de packaging | Dans votre navigateur, sur votre appareil |
| PyInstaller | Vous voulez une commande Python qui produit un dossier ou un exécutable unique, ou vous packagez une application graphique (Tkinter, PySide/PyQt) | Un environnement Python sous Windows pour un build Windows |
| Nuitka | Vous voulez compiler Python et configurer une chaîne de compilation native | Un environnement Python sous Windows, plus un compilateur C pris en charge |
| cx_Freeze | Vous voulez distribuer un dossier d'application et maintenir sa configuration de build | Un environnement Python sous Windows pour un build Windows |
Les commandes ci-dessous utilisent Windows PowerShell. Seules les méthodes locales vous demandent d'installer vous-même ces outils de packaging.
Méthode 1 : convertir Python en EXE avec Runcell
Commencer avec un petit script reproductible
Enregistrez cet exemple sous le nom receipt.py. Il affiche un reçu, calcule le total et attend la touche Entrée, pour que la fenêtre de console reste ouverte après un double-clic. Il n'a aucune dépendance tierce ni fichier supplémentaire.
items = {"Notebook": 19.50, "Cable": 8.25, "Stand": 12.25}
print("Receipt")
for name, price in items.items():
print(f"{name}: ${price:.2f}")
print(f"Total: ${sum(items.values()):.2f}")
input("Press Enter to close...")Si Python est déjà installé sur votre machine, vérifiez le code source avant de le packager :
python receipt.pyLe total doit être Total: $40.00. Appuyez sur Entrée pour terminer. Si c'est votre premier script, notre guide pour exécuter des scripts Python explique comment configurer le terminal.
Ajouter le projet et lancer le build
- Ouvrez le convertisseur Python vers EXE de Runcell (opens in a new tab) et descendez jusqu'au convertisseur sur la page.
- Choisissez votre fichier
receipt.py. Pour une application console existante, sélectionnez plutôt son dossier de projet ou un ZIP, avec les modules et les ressources qu'elle utilise. - Sélectionnez
receipt.pycomme script d'entrée. Dans un projet plus grand, c'est le script que vous lancez d'habitude pour démarrer l'application, par exemplemain.py. - Vérifiez les imports, les dépendances et les fichiers inclus qui ont été détectés. L'exemple du reçu n'a besoin d'aucun package supplémentaire. Pour votre propre application, vérifiez que les ressources nécessaires et les versions des packages correspondent au projet que vous voulez distribuer. Le runtime de Runcell est Python 3.14 : chaque package doit donc disposer d'une wheel qui fonctionne sous Windows avec Python 3.14 (une wheel
cp314,abi3ou en pur Python). - Sélectionnez Build Windows EXE, puis téléchargez l'exécutable généré. Ouvrez-le sous Windows et vérifiez l'affichage du reçu avant de le partager.
Lors de notre test dans le navigateur, Runcell a généré et téléchargé receipt.exe. Son en-tête de fichier l'identifie comme un exécutable Windows x64. Nous n'avons pas lancé cet EXE sous Windows.
Pour un projet de plusieurs fichiers, gardez l'arborescence des dossiers intacte. Un modèle chargé depuis templates/invoice.html doit être inclus au chemin que votre application attend.
Comment un navigateur génère un EXE Windows
Le moteur de packaging de Runcell combine un lanceur Windows précompilé, un runtime Python, les fichiers de votre projet et ses dépendances. Il assemble ces composants en un .exe téléchargeable, sur votre appareil. Comme les composants Windows sont déjà compilés, le navigateur peut construire le binaire final sans lancer de compilateur Windows en local.
Le workflow comporte deux étapes distinctes :
Your Python project + dependencies
+
Python runtime + precompiled Windows launcher
|
v
Runcell assembles the EXE in your browser
|
v
Download the file, then run it on WindowsGénérer un fichier et l'exécuter sont deux opérations différentes : le navigateur assemble l'exécutable, et c'est Windows qui lance l'application terminée. Le guide de Runcell sur ce mécanisme (opens in a new tab) décrit ce processus de packaging.
Ce qui reste sur votre appareil
Runcell construit l'EXE dans votre navigateur. Si votre projet importe un module que son runtime Windows embarqué ne contient pas, le convertisseur vous le signale avant le build ; supprimez cet import ou utilisez l'un des outils de packaging locaux ci-dessous.
Votre code source et vos secrets restent sur votre appareil pendant le build. L'EXE final contient votre code : n'y embarquez donc aucun secret que vous ne partageriez pas.
Méthode 2 : faire le build en local avec PyInstaller
PyInstaller (opens in a new tab) rassemble votre script, ses imports et le runtime Python dans une application distribuable. Pour obtenir un EXE Windows, lancez PyInstaller sous Windows : il produit un build pour le système d'exploitation sur lequel il tourne.
Ouvrez PowerShell dans le dossier qui contient receipt.py. Créez un environnement virtuel et installez-y PyInstaller. Si vous avez installé Python depuis python.org, le lanceur py fonctionne même quand python n'est pas dans le PATH, et appeler directement le Python de l'environnement évite l'étape d'activation :
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install pyinstaller
.\.venv\Scripts\python.exe -m PyInstaller --onefile receipt.pyLe résultat est dist\receipt.exe. Lancez-le depuis PowerShell pour voir sa sortie :
.\dist\receipt.exePour votre propre projet, installez ses dépendances dans le même environnement avant le build. S'il a un requirements.txt, utilisez .\.venv\Scripts\python.exe -m pip install -r requirements.txt.
L'appel -m PyInstaller, sensible à la casse, est documenté dans le guide d'installation (opens in a new tab). Il garde l'outil de packaging et vos dépendances dans le même environnement Python.
Choisir le mode console, GUI ou un build en dossier
Gardez le mode console pour receipt.py, puisqu'il utilise print() et input(). Pour une application graphique qui gère toutes les interactions dans ses propres fenêtres, --windowed masque la console. Commencez par --onedir si vous voulez inspecter l'application et ses fichiers annexes dans un dossier, puis passez à --onefile pour proposer un seul fichier à télécharger. Consultez la référence des options de PyInstaller (opens in a new tab).
Pour inclure un dossier assets, ajoutez-le explicitement :
.\.venv\Scripts\python.exe -m PyInstaller --onefile --add-data "assets:assets" receipt.pyCet exemple suppose que vous avez créé un dossier assets. Pour les fichiers embarqués en lecture seule, résolvez les chemins par rapport à __file__, comme l'explique le guide d'exécution de PyInstaller (opens in a new tab). Notre guide Python pathlib détaille les opérations sur les chemins.
Méthode 3 : compiler et packager avec Nuitka
Nuitka (opens in a new tab) compile Python et peut créer des applications distribuables. Choisissez-le si vous voulez garder la main sur un build basé sur un compilateur. Il vous faut un compilateur C pris en charge ; sous Windows, le manuel cite notamment Visual Studio 2022 ou plus récent. Le manuel précise aussi que MinGW64 ne fonctionne pas avec Python 3.13 ou plus récent sans une option expérimentale : avec un Python actuel, prévoyez d'installer les Visual Studio Build Tools.
Dans le même type d'environnement virtuel, installez Nuitka et demandez son mode fichier unique (onefile) :
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install nuitka
.\.venv\Scripts\python.exe -m nuitka --mode=onefile receipt.pySous Windows, le résultat attendu est receipt.exe. Utilisez --mode=standalone si vous préférez un dossier de distribution. Indiquez explicitement l'un de ces modes : le mode accéléré, utilisé par défaut par Nuitka, n'est pas fait pour distribuer une application sur une machine sans Python. Suivez le manuel officiel pour configurer le compilateur et pour les options propres à certains packages.
Méthode 4 : créer un dossier d'application avec cx_Freeze
cx_Freeze (opens in a new tab) produit normalement un dossier qui contient l'exécutable et les bibliothèques dont il dépend. Choisissez-le si vous voulez maintenir un build d'application configuré et distribuer le dossier entier.
Dans le même type d'environnement virtuel, installez le package et lancez son outil de build en ligne de commande :
py -m venv .venv
.\.venv\Scripts\python.exe -m pip install cx-Freeze
.\.venv\Scripts\cxfreeze.exe --script receipt.py --target-dir distCes commandes suivent la référence actuelle de la commande cxfreeze (opens in a new tab). Distribuez le dossier dist complet, bibliothèques comprises, au lieu de copier uniquement l'EXE. Pour des réglages de projet reproductibles, cx_Freeze prend aussi en charge pyproject.toml et un script setup en Python.
Vérifier le résultat avant de le partager
Lancez l'application sur une machine Windows représentative de la configuration de vos destinataires. Pour cet exemple, vérifiez le prix des articles, le total de $40.00 et l'invite qui demande d'appuyer sur Entrée. Une machine sans installation séparée de Python permet de confirmer que vous avez bien inclus le runtime et les dépendances.
Pour une application plus importante, testez l'action dont vos destinataires ont réellement besoin, par exemple sélectionner un fichier d'entrée et enregistrer un rapport. Si une fenêtre de console se ferme aussitôt, lancez l'EXE depuis PowerShell pour lire l'erreur. S'il manque une image ou un modèle, vérifiez à la fois les fichiers packagés et le chemin utilisé pour les charger. Les imports dynamiques peuvent devoir être inclus explicitement avec les options de l'outil de packaging local.
Les EXE non signés, quel que soit l'outil qui les a produits, peuvent déclencher un avertissement Microsoft Defender SmartScreen la première fois qu'on les ouvre. Le destinataire sélectionne alors More info, puis Run anyway (sur un Windows en français : « Informations complémentaires » puis « Exécuter quand même »).
Questions fréquentes
Comment convertir un fichier .py en .exe sans installer d'outil de packaging ?
Utilisez le convertisseur Python vers EXE de Runcell (opens in a new tab). Choisissez votre fichier Python, votre dossier ou votre ZIP, sélectionnez le script d'entrée, vérifiez les dépendances et générez l'EXE Windows dans votre navigateur.
Un navigateur peut-il vraiment générer un exécutable Windows ?
Oui. Runcell assemble des composants Windows précompilés, un runtime Python et votre application en un EXE, directement dans le navigateur. Vous téléchargez ce fichier et le lancez sous Windows. Le navigateur n'a pas besoin d'exécuter l'application Windows pour générer son binaire.
La personne qui lance l'EXE doit-elle avoir Python installé ?
Aucune installation séparée de Python n'est nécessaire si vous distribuez l'application avec son runtime et les dépendances requises. Runcell inclut le runtime dans son processus de packaging. Pour un build en dossier réalisé avec un outil local, partagez le dossier de sortie complet.
Quelle est la commande PyInstaller pour obtenir un seul EXE ?
Lancez python -m PyInstaller --onefile receipt.py dans l'environnement Windows où PyInstaller et les dépendances de votre projet sont installés. Dans l'exemple, le résultat est dist\receipt.exe.
Sources et tests
Le workflow et le mécanisme de packaging de Runcell décrits ici suivent son guide produit public (opens in a new tab), consulté le 4 novembre 2026. Les commandes de build locales suivent la documentation officielle liée dans chaque méthode. Nous avons exécuté l'exemple de reçu sous macOS, l'avons sélectionné dans le convertisseur Runcell en ligne, avons généré et téléchargé receipt.exe, puis inspecté son en-tête PE Windows x64. Toujours sous macOS, nous avons fait le build du script de reçu avec PyInstaller 6.22.3 (--onefile) et cx_Freeze 8.7.4 pour vérifier ces commandes, et contrôlé les options de mode de Nuitka à partir de sa sortie d'aide. Aucun EXE n'a été lancé sous Windows pour cet article.
Guides associés
- Comment exécuter des scripts Python
- Environnements virtuels Python
- Python pathlib pour les chemins de fichiers et de ressources
- Python argparse pour les arguments en ligne de commande