Vous avez développé un script Python et souhaitez l’exécuter facilement sur n’importe quel ordinateur Windows, sans avoir à installer Python ? Convertir votre fichier .py en .exe est la solution idéale pour rendre votre programme autonome et accessible à tous.
Dans ce guide, nous vous expliquons pas à pas comment transformer un script Python en exécutable Windows. Nous explorerons plusieurs méthodes adaptées à différents besoins, des solutions en ligne de commande aux outils avec interface graphique.
Que vous soyez débutant ou développeur avancé, vous trouverez ici les meilleures techniques pour compiler un fichier Python en .exe et le distribuer facilement.
Au programme de ce guide :
- PyInstaller : la méthode la plus courante et polyvalente.
- auto-py-to-exe : une interface graphique simple basée sur PyInstaller.
- cx_Freeze : une alternative efficace pour des applications complexes.
- Nuitka : une option avancée qui améliore les performances de votre exécutable.
Suivez notre guide détaillé pour choisir la solution qui vous convient et générer un fichier .exe en toute simplicité.
À lire aussi
Pourquoi convertir un script Python en exécutable (.exe) ?
Lorsqu’on développe un programme en Python, il est souvent nécessaire de le partager avec d’autres utilisateurs, qu’ils soient collègues, clients ou amis. Cependant, tous n’ont pas Python installé sur leur machine, et leur demander d’installer un interpréteur Python avec les bonnes dépendances peut être contraignant.
En convertissant votre fichier .py en .exe, vous facilitez grandement la distribution et l’utilisation de votre programme. Voici les principaux avantages de cette conversion :
1. Exécution simplifiée pour l’utilisateur final
Un fichier .exe peut être lancé d’un simple double-clic, sans avoir à ouvrir un terminal ou installer des modules Python. C’est la solution idéale pour rendre une application plus accessible, notamment pour les utilisateurs non techniques.
2. Portabilité et compatibilité
Un exécutable Windows fonctionne sur n’importe quelle machine Windows, qu’elle ait ou non Python installé. Cela élimine les problèmes de compatibilité entre différentes versions de Python et simplifie le partage du programme.
3. Protection du code source
Un script Python est un fichier texte lisible, ce qui signifie que n’importe qui peut accéder au code source et potentiellement le modifier. En générant un .exe, vous rendez le code plus difficile à lire ou à modifier, ce qui garantisse une certaine protection contre la copie et l’exploitation non autorisée.
4. Meilleure expérience utilisateur
Les utilisateurs non familiarisés avec Python n’ont pas besoin d’apprendre à exécuter un script en ligne de commande. Un .exe offre une expérience plus fluide et professionnelle, en évitant les erreurs liées aux environnements Python mal configurés.
5. Intégration avec d’autres logiciels
Certaines entreprises ou clients peuvent exiger un fichier exécutable pour intégrer un outil dans un processus métier ou un système existant. Avoir un .exe permet donc une meilleure adoption et une compatibilité accrue avec d’autres applications Windows.
Les inconvénients ?
Bien que convertir un fichier .py en .exe offre de nombreux avantages, il faut aussi prendre en compte quelques limitations :
- Uniquement pour Windows : les fichiers .exe ne sont pas directement compatibles avec macOS ou Linux (nécessite Wine ou une autre solution).
- Poids du fichier : un exécutable inclut l’interpréteur Python et les dépendances, ce qui peut augmenter considérablement la taille du fichier final.
- Protection relative du code : bien que le fichier soit compilé, il reste possible d’extraire ou de rétro-concevoir le code source avec des outils spécialisés.
Passons maintenant aux méthodes de conversion .py en exécutable.
Méthode 1 : Convertir un script Python en .exe avec PyInstaller
PyInstaller est l’une des solutions les plus populaires pour convertir un fichier .py en .exe. Il est apprécié pour sa simplicité d’utilisation, sa compatibilité avec les modules externes, et son efficacité à regrouper toutes les dépendances nécessaires en un seul fichier exécutable.
1. Présentation de PyInstaller
PyInstaller est une bibliothèque Python qui convertit un script Python en un exécutable Windows (.exe). L’outil fonctionne en intégrant l’interpréteur Python et toutes les dépendances dans le fichier exécutable final.
✅ Avantages de PyInstaller :
- Facilité d’installation et d’utilisation.
- Supporte la plupart des bibliothèques Python sans configuration complexe.
- Génération de fichiers .exe autonomes, sans besoin d’installer Python.
- Option pour créer un exécutable unique ou un dossier avec plusieurs fichiers.
- Compatibilité multi-plateforme (permet aussi de générer des exécutables pour macOS et Linux).
❌ Inconvénients :
- Taille du fichier généré parfois importante.
- Certaines dépendances spécifiques nécessitent une configuration avancée.
- Ne protège pas totalement le code source (un fichier .exe peut être décompilé avec des outils spécialisés).
2. Installation de PyInstaller
Avant de commencer, assurez-vous que Python est installé sur votre machine. PyInstaller est compatible avec Python 3.6 et plus.
Installation via pip :
pip install pyinstaller
Cette commande télécharge et installe PyInstaller sur votre environnement Python.
Vérification de l’installation :
pyinstaller --version
Si la version de PyInstaller s’affiche, l’installation a réussi.
3. Conversion d’un script Python en exécutable avec PyInstaller
Une fois PyInstaller installé, vous pouvez convertir votre script Python en .exe en quelques commandes.
Commande de base :
pyinstaller --onefile script.py
📌 Explication des paramètres :
- –onefile : Génère un seul fichier .exe au lieu d’un dossier contenant plusieurs fichiers.
- script.py : Remplacez-le par le nom de votre fichier Python.
📍 Exemple concret : Si vous avez un script mon_programme.py, utilisez :
pyinstaller --onefile mon_programme.py
Une fois l’exécution terminée, le fichier .exe est généré dans le dossier dist/.
4. Options avancées pour personnaliser l’exécutable
Créer un exécutable avec une icône personnalisée
Par défaut, PyInstaller génère un fichier sans icône. Pour ajouter une icône :
pyinstaller --onefile --icon=icone.ico mon_programme.py
📝 Note : L’icône doit être au format .ico. Vous pouvez convertir une image en .ico en ligne via des sites comme icoconvert.com.
Masquer la console (pour les applications avec interface graphique)
Si votre programme utilise Tkinter, PyQt ou tout autre GUI, vous voudrez masquer la fenêtre de console qui s’ouvre par défaut. Utilisez l’option –noconsole :
pyinstaller --onefile --noconsole mon_programme.py
Cela permet d’avoir une application propre, sans interface en ligne de commande.
Inclure des fichiers supplémentaires (images, bases de données, etc.)
Si votre programme dépend de fichiers externes, il faut les inclure avec –add-data :
pyinstaller --onefile --add-data "mon_fichier.txt;." mon_programme.py
📌 Explication :
- mon_fichier.txt → fichier à inclure.
- “.” → l’emplacement où sera copié le fichier (le dossier racine de l’exécutable).
5. Résolution des erreurs courantes avec PyInstaller
Voici quelques erreurs fréquentes et leurs solutions :
L’exécutable se ferme immédiatement après l’ouverture
👉 Solution : Ajoutez cette ligne à la fin de votre script Python :
input("Appuyez sur Entrée pour quitter...")
Cela empêche l’exécutable de se fermer immédiatement après l’exécution.
Message d’erreur “ModuleNotFoundError” lors de l’exécution
👉 Solution :
- Vérifiez que toutes les dépendances de votre script sont bien installées avec
pip list
. - Essayez de réinstaller PyInstaller.
- Forcez l’inclusion des modules manquants avec –hidden-import :
pyinstaller --onefile --hidden-import module_manquant mon_programme.py
Le fichier .exe est détecté comme un virus par l’antivirus
👉 Solution :
- Les antivirus détectent parfois les exécutables PyInstaller comme suspects.
- Ajoutez une exception dans votre antivirus pour le dossier contenant votre fichier .exe.
- Signez numériquement l’exécutable si vous prévoyez de le distribuer largement.
6. Comparatif PyInstaller vs autres solutions
Critères | PyInstaller | auto-py-to-exe | cx_Freeze | Nuitka |
---|---|---|---|---|
Facilité d’utilisation | ✅ Très simple | ✅ Interface graphique | ❌ Configuration manuelle | ❌ Plus complexe |
Compatibilité Windows | ✅ Oui | ✅ Oui | ✅ Oui | ✅ Oui |
Exécutable unique | ✅ Oui (--onefile ) | ✅ Oui | ✅ Oui | ✅ Oui |
Support des dépendances | ✅ Oui | ✅ Oui | ✅ Oui | ✅ Oui (compilation en C++) |
Protection du code | ❌ Moyenne | ❌ Moyenne | ❌ Moyenne | ✅ Bonne (compilé en C) |
Taille du fichier final | ⚠️ Plutôt grand | ⚠️ Grand | ✅ Plus léger | ✅ Optimisé |
- PyInstaller est recommandé si vous cherchez une solution rapide et efficace.
- Nuitka est préférable si vous souhaitez une meilleure optimisation et protection du code.
Conclusion
PyInstaller est un excellent choix pour convertir un script Python en exécutable sans effort. Il est facile à installer, compatible avec la majorité des bibliothèques et permet de générer un exécutable unique grâce à l’option –onefile.
💡 Récapitulatif des étapes pour créer un .exe avec PyInstaller :
- Installer PyInstaller : pip install pyinstaller
- Générer un exécutable de base : pyinstaller –onefile mon_programme.py
- Ajouter des options avancées : pyinstaller –onefile –icon=icone.ico –noconsole mon_programme.py
- Tester l’exécutable dans le dossier dist/ et vérifier qu’il fonctionne correctement.
Méthode 2 : Convertir un script Python en .exe avec auto-py-to-exe
Si vous trouvez PyInstaller pratique mais préférez une solution avec une interface graphique (GUI) pour éviter d’écrire des commandes, auto-py-to-exe est l’outil idéal. Il repose sur PyInstaller, mais facilite énormément le processus en offrant une interface utilisateur intuitive.
1. Présentation de auto-py-to-exe
auto-py-to-exe est une application qui permet de convertir un fichier .py en .exe en quelques clics, sans devoir manipuler la ligne de commande. Il est basé sur PyInstaller, ce qui signifie qu’il bénéficie des mêmes avantages tout en étant plus accessible aux débutants.
✅ Avantages de auto-py-to-exe :
- Interface graphique conviviale (idéal pour les non-développeurs).
- Toutes les options de PyInstaller accessibles via une interface intuitive.
- Aucune commande à taper : tout se fait via des boutons et des menus.
- Prévisualisation des options avant génération.
❌ Inconvénients :
- Uniquement disponible pour Windows.
- Repose sur PyInstaller, donc mêmes limitations en termes de taille des fichiers générés.
- L’interface peut être lente sur certaines machines.
2. Installation de auto-py-to-exe
Prérequis :
- Python 3.6 ou plus installé sur votre ordinateur.
- pip mis à jour (si besoin, tapez pip install –upgrade pip).
Installation via pip :
pip install auto-py-to-exe
Une fois installé, vous pouvez lancer l’interface avec la commande :
auto-py-to-exe
Cela ouvrira une fenêtre graphique où vous pourrez configurer la conversion sans toucher à la ligne de commande.
3. Utilisation de auto-py-to-exe
Dès que l’interface s’ouvre, vous verrez plusieurs options que nous allons détailler une par une.
Étape 1 : Sélection du script Python
Dans la section « Script Location », cliquez sur « Browse » et sélectionnez votre fichier Python (.py).
Étape 2 : Choix du mode d’exécution
Deux options sont disponibles :
- One Directory : génère un dossier contenant plusieurs fichiers, y compris l’exécutable.
- One File : regroupe tout en un seul fichier .exe (comme avec –onefile dans PyInstaller).
Pour un exécutable unique, cochez “One File”.
Étape 3 : Mode d’affichage
- Console Based : affiche une console (cmd) lors de l’exécution (utile pour les programmes en ligne de commande).
- Window Based : masque la console, idéal pour les applications avec interface graphique (ex. Tkinter, PyQt).
Si vous voulez cacher la console, choisissez “Window Based”.
Étape 4 : Ajout d’une icône personnalisée (optionnel)

Si vous souhaitez une icône spécifique pour votre exécutable :
- Cliquez sur “Browse” à côté de “Icon”.
- Sélectionnez un fichier .ico.
📝 Astuce : Si vous avez une image au format PNG ou JPG, utilisez un site comme icoconvert.com pour la convertir en .ico.
Étape 5 : Ajout de fichiers supplémentaires (optionnel)
Si votre programme utilise des fichiers externes (images, bases de données, fichiers texte…), cliquez sur “Add Files” et ajoutez-les manuellement.

Exemple : si votre script charge un fichier CSV, il faut l’inclure pour éviter qu’il manque à l’exécution.
Étape 6 : Paramètres avancés (Configuration)
Dans l’onglet “Advanced”, vous trouverez d’autres options utiles :
- “Increase Console Buffer Size” : évite la coupure des longues sorties texte dans la console.
- “Add Arguments” : permet de passer des arguments à l’exécutable.
- “Add Python Modules to the Package” : inclut des bibliothèques spécifiques si nécessaire.
Étape 7 : Génération de l’exécutable

Une fois toutes les options configurées :
- Cliquez sur le bouton “Convert .py to .exe”.
- Patientez quelques minutes (la durée dépend de la taille de votre script et des dépendances).
- Une fois terminé, votre exécutable sera disponible dans le dossier “output”.

4. Résolution des erreurs fréquentes avec auto-py-to-exe
Comme PyInstaller, auto-py-to-exe peut rencontrer quelques erreurs. Voici comment les résoudre :
L’exécutable se ferme immédiatement après ouverture
👉 Solution : Ajoutez cette ligne à la fin de votre script Python :
input("Appuyez sur Entrée pour quitter...")
Cela empêche l’exécutable de se fermer immédiatement.
Problème avec les fichiers externes (ex. images, bases de données, etc.)
👉 Solution :
- Vérifiez que vous avez bien ajouté les fichiers via l’option “Add Files”.
- Vérifiez les chemins d’accès relatifs dans votre script.
Antivirus bloquant l’exécutable
👉 Solution :
- Ajoutez une exception dans votre antivirus.
- Essayez de signer l’exécutable avec un certificat de sécurité.
Modules Python introuvables (“ModuleNotFoundError”)
👉 Solution :
- Ajoutez les modules manuellement avec « Add Python Modules to the Package».
- Ou utilisez l’option –hidden-import de PyInstaller dans les paramètres avancés.
5. Comparatif auto-py-to-exe vs PyInstaller
Critères | auto-py-to-exe | PyInstaller |
---|---|---|
Interface graphique (GUI) | ✅ Oui | ❌ Non |
Facilité d’utilisation | ✅ Très simple | ⚠️ Commandes à taper |
Exécutable unique | ✅ Oui | ✅ Oui |
Personnalisation facile | ✅ Oui | ⚠️ Plus technique |
Ajout de fichiers externes | ✅ Oui | ✅ Oui |
Performance et rapidité | ⚠️ Un peu plus lent | ✅ Plus rapide |
Niveau recommandé | 👶 Débutants | 👨💻 Intermédiaires / avancés |
👉 Conclusion :
- auto-py-to-exe est idéal pour les débutants ou ceux qui préfèrent une interface visuelle.
- PyInstaller reste plus rapide et efficace pour ceux à l’aise avec la ligne de commande.
Conclusion
auto-py-to-exe est la solution parfaite pour convertir un script Python en .exe sans se compliquer la vie. Il offre une interface intuitive, permettant de configurer facilement l’exécutable sans taper une seule commande.
🔹 Récapitulatif des étapes :
- Installer auto-py-to-exe : pip install auto-py-to-exe
- Lancer l’interface : auto-py-to-exe
- Sélectionner son script et configurer les options.
- Générer l’exécutable et tester son fonctionnement.
Méthode 3 : Convertir un script Python en .exe avec cx_Freeze
cx_Freeze est une alternative à PyInstaller et auto-py-to-exe, souvent privilégiée pour les projets plus complexes nécessitant une meilleure gestion des dépendances. Contrairement à PyInstaller, il ne génère pas un exécutable autonome mais plutôt un ensemble de fichiers nécessaires à l’exécution du programme.

1. Présentation de cx_Freeze
cx_Freeze est un outil de conversion de scripts Python en exécutables multi-plateforme (Windows, macOS et Linux). Contrairement à PyInstaller, il ne regroupe pas tout dans un seul fichier .exe, mais crée un dossier avec tous les fichiers requis pour exécuter l’application.
✅ Avantages de cx_Freeze :
- Compatibilité multi-plateforme (Windows, macOS, Linux).
- Exécutables plus légers que ceux générés par PyInstaller.
- Meilleure gestion des dépendances complexes.
- Adapté aux applications GUI (Tkinter, PyQt, wxPython, etc.).
❌ Inconvénients :
- Ne crée pas un seul fichier .exe autonome (nécessite un dossier avec plusieurs fichiers).
- Configuration plus complexe qu’avec PyInstaller.
- Moins populaire, donc moins de documentation et d’exemples.
2. Installation de cx_Freeze
Prérequis :
- Python 3.6 ou supérieur installé sur votre ordinateur.
- pip mis à jour.
Installation via pip :
pip install cx_Freeze
Une fois installé, vérifiez si l’installation a réussi avec :
python -m cx_Freeze --version
3. Création d’un exécutable avec cx_Freeze
Contrairement à PyInstaller, cx_Freeze nécessite un fichier de configuration appelé setup.py. Ce fichier contient les instructions pour générer l’exécutable.
Étape 1 : Créer le fichier setup.py
Dans le même dossier que votre script script.py, créez un fichier setup.py avec le contenu suivant :
from cx_Freeze import setup, Executable
setup(
name="MonProgramme",
version="1.0",
description="Mon programme Python converti en .exe",
executables=[Executable("script.py", base="Win32GUI")]
)
📌 Explication des paramètres :
- name → Nom du programme.
- version → Numéro de version de votre application.
- description → Brève description.
- executables → Liste des fichiers à convertir en .exe.
- base=”Win32GUI” → Utilisé pour masquer la console si c’est une application GUI. Si c’est une application en ligne de commande, supprimez cette ligne.
Étape 2 : Lancer la conversion en exécutable
Dans votre terminal (dans le même dossier que setup.py), exécutez la commande suivante :
python setup.py build
📌 Explication : build
génère un dossier build/ contenant l’exécutable et tous les fichiers nécessaires.
Après quelques minutes, vous trouverez votre exécutable dans le dossier build/.
4. Options avancées pour personnaliser cx_Freeze
Ajouter des fichiers supplémentaires (images, bases de données, etc.)
Si votre programme utilise des fichiers externes (ex. : fichiers JSON, images, bases de données SQLite), vous devez les inclure dans la configuration.
Modifiez setup.py en ajoutant l’option include_files :
from cx_Freeze import setup, Executable
options = {
"build_exe": {
"include_files": ["mon_image.png", "ma_base_de_donnees.db"]
}
}
setup(
name="MonProgramme",
version="1.0",
description="Mon programme avec fichiers externes",
options=options,
executables=[Executable("script.py", base="Win32GUI")]
)
Cela permet de copier ces fichiers dans le dossier de l’exécutable.
Changer l’icône du fichier .exe
Par défaut, cx_Freeze génère un exécutable sans icône personnalisée. Ajoutez l’option icon=”icone.ico” à la configuration :
Executable("script.py", base="Win32GUI", icon="mon_icone.ico")
📌 L’icône doit être au format .ico (utilisez icoconvert.com pour convertir une image).
Optimiser l’exécutable en réduisant sa taille
Pour éviter d’inclure tous les modules inutiles et alléger l’exécutable, utilisez excludes :
pythonCopyEditoptions = {
"build_exe": {
"excludes": ["tkinter", "numpy"]
}
}
Cela supprime Tkinter et NumPy, réduisant la taille du fichier final.
5. Résolution des erreurs courantes avec cx_Freeze
Problème “ModuleNotFoundError”
👉 Solution :
Ajoutez les modules nécessaires dans setup.py :
options = { "build_exe": { "includes": ["os", "sys"] } }
Vérifiez que les modules sont bien installés (pip list
).
L’exécutable ne se lance pas
👉 Solution :
- Vérifiez que tous les fichiers nécessaires sont bien dans le dossier build/.
- Ajoutez input(“Appuyez sur Entrée pour quitter…”) à la fin de votre script pour voir les messages d’erreur.
6. Comparatif cx_Freeze vs PyInstaller vs auto-py-to-exe
Critères | cx_Freeze | PyInstaller | auto-py-to-exe |
---|---|---|---|
Exécutable unique | ❌ Non | ✅ Oui (--onefile ) | ✅ Oui |
Facilité d’installation | ⚠️ Moyenne | ✅ Facile | ✅ Très simple |
Interface graphique | ❌ Non | ❌ Non | ✅ Oui |
Gestion des dépendances | ✅ Très bonne | ✅ Bonne | ✅ Bonne |
Multi-plateforme (Windows, macOS, Linux) | ✅ Oui | ✅ Oui | ❌ Non |
Taille des fichiers générés | ✅ Optimisée | ⚠️ Parfois grande | ⚠️ Parfois grande |
Recommandé pour | 🏢 Applications complexes | 🔰 Usage général | 👶 Débutants |
👉 Conclusion :
- cx_Freeze est une excellente alternative si vous avez une application complexe avec des dépendances précises.
- Si vous cherchez une solution simple et rapide, PyInstaller ou auto-py-to-exe sont plus accessibles.
Conclusion
cx_Freeze est un outil puissant pour convertir un script Python en exécutable, en particulier si vous développez une application avec des fichiers externes ou une interface graphique. Il demande un peu plus de configuration que PyInstaller, mais permet un meilleur contrôle sur les dépendances.
💡 Résumé des étapes pour cx_Freeze :
- Installer cx_Freeze : pip install cx_Freeze
- Créer un fichier setup.py et configurer les options.
- Lancer la conversion avec : python setup.py build
- Tester l’exécutable dans le dossier build/ et ajuster si nécessaire.
Méthode 4 : Convertir un script Python en .exe avec Nuitka

Nuitka est une solution plus avancée que PyInstaller, auto-py-to-exe et cx_Freeze. Contrairement à ces outils, qui transforment simplement un script Python en exécutable, Nuitka compile réellement le code Python en langage machine (C), ce qui permet d’obtenir de meilleures performances et une sécurité accrue.
1. Présentation de Nuitka
Nuitka est un compilateur Python qui convertit le code Python en langage machine via C/C++. Il permet donc de générer un exécutable natif plus performant, sans interpréteur Python embarqué.
✅ Avantages de Nuitka :
- Améliore les performances (jusqu’à 30% de gain en vitesse par rapport à l’interprétation classique de Python).
- Protège mieux le code source (contrairement à PyInstaller, qui garde le code en clair dans l’exécutable).
- Génère un exécutable réellement natif, indépendant de l’installation Python.
- Compatible avec tous les modules Python, y compris NumPy et Pandas.
- Multi-plateforme (Windows, Linux, macOS).
❌ Inconvénients :
- Installation plus lourde (nécessite un compilateur C comme MinGW sur Windows).
- Processus plus long que PyInstaller et cx_Freeze.
- Fichiers générés parfois volumineux.
2. Installation de Nuitka
Installer Nuitka via pip
pip install nuitka
Installer un compilateur C (obligatoire)
Sur Windows, il faut installer MinGW (Minimalist GNU for Windows). Téléchargez-le via la commande :
pip install numpy gcc-mingw-w64
Ou installez MinGW-w64 manuellement depuis le site officiel : https://winlibs.com/.
Vérifiez ensuite que MinGW est bien installé avec :
gcc --version
Sur Linux/macOS, utilisez simplement :
sudo apt install gcc g++
3. Conversion d’un script Python en exécutable avec Nuitka
Une fois l’installation terminée, vous pouvez convertir votre script en exécutable avec la commande :
nuitka --standalone --onefile --mingw64 script.py
📌 Explication des options :
- –standalone : Génère un exécutable indépendant, incluant toutes les dépendances.
- –onefile : Regroupe tout en un seul fichier .exe (sinon, plusieurs fichiers seront créés).
- –mingw64 : Utilise le compilateur MinGW (obligatoire sur Windows).
Exemple concret
Si vous avez un script mon_programme.py, utilisez :
nuitka --standalone --onefile --mingw64 mon_programme.py
L’exécutable final apparaîtra dans le dossier build/.
4. Options avancées pour optimiser Nuitka
Ajouter une icône personnalisée
Comme avec PyInstaller, vous pouvez ajouter une icône .ico :
nuitka --standalone --onefile --mingw64 --windows-icon-from-ico=mon_icone.ico script.py
2. Réduire la taille du fichier final
Les exécutables générés par Nuitka peuvent être volumineux. Pour réduire leur taille, utilisez UPX (Ultimate Packer for Executables) :
- Installez UPX :
pip install upx
- Ajoutez l’option –lto=yes :
nuitka --standalone --onefile --mingw64 --lto=yes script.py
Effet : cela optimise la compilation et réduit la taille du fichier.
Désactiver la console pour une application GUI
Si vous créez une application avec interface graphique, ajoutez l’option :
--windows-disable-console
Exemple :
nuitka --standalone --onefile --mingw64 --windows-disable-console mon_programme.py
5. Résolution des erreurs courantes avec Nuitka
Nuitka ne trouve pas le compilateur MinGW
👉 Solution : Ajoutez MinGW au PATH de Windows manuellement :
- Ouvrez Panneau de configuration > Système > Paramètres avancés > Variables d’environnement.
- Ajoutez le chemin vers MinGW (exemple : C:\MinGW\bin).
- Redémarrez votre terminal et testez gcc –version.
Fichier exécutable trop lourd
👉 Solution : Utilisez UPX (–lto=yes) ou excluez des modules inutiles :
nuitka --standalone --onefile --mingw64 --nofollow-import-to=tkinter script.py
Cela exclut Tkinter, si vous ne l’utilisez pas.
Antivirus détecte l’exécutable comme une menace
👉 Solution :
- Ajoutez une exception dans votre antivirus.
- Signez numériquement l’exécutable si vous prévoyez de le distribuer.
6. Comparatif Nuitka vs PyInstaller vs cx_Freeze vs auto-py-to-exe
Critères | Nuitka | PyInstaller | cx_Freeze | auto-py-to-exe |
---|---|---|---|---|
Exécutable unique | ✅ Oui (--onefile ) | ✅ Oui | ❌ Non | ✅ Oui |
Amélioration des performances | ✅ Oui (compilé en C) | ❌ Non | ❌ Non | ❌ Non |
Protection du code source | ✅ Très bonne | ❌ Moyenne | ❌ Moyenne | ❌ Moyenne |
Installation facile | ⚠️ Moyenne | ✅ Facile | ⚠️ Moyenne | ✅ Très simple |
Besoin d’un compilateur C | ✅ Oui (MinGW) | ❌ Non | ❌ Non | ❌ Non |
Compatibilité multi-plateforme | ✅ Oui | ✅ Oui | ✅ Oui | ❌ Non |
Taille des fichiers générés | ⚠️ Plus grand | ⚠️ Grand | ✅ Optimisé | ⚠️ Grand |
Recommandé pour | 🚀 Performance & Sécurité | 🔰 Usage général | 🏢 Applications complexes | 👶 Débutants |
👉 Conclusion :
- Nuitka est idéal si vous cherchez une meilleure performance et une protection accrue du code.
- Si vous voulez juste un exécutable rapidement, PyInstaller ou auto-py-to-exe suffisent.
Conclusion
Nuitka est la solution la plus avancée pour convertir un script Python en exécutable. Contrairement à PyInstaller et cx_Freeze, il convertit réellement le code en C, offrant de meilleures performances et une meilleure sécurité.
💡 Résumé des étapes pour Nuitka :
- Installer Nuitka : pip install nuitka
- Installer un compilateur C (MinGW sur Windows).
- Générer un exécutable optimisé : nuitka –standalone –onefile –mingw64 script.py
- Tester l’exécutable et ajuster les options si nécessaire.
Comparatif final des outils pour convertir un script Python en .exe
Après avoir exploré PyInstaller, auto-py-to-exe, cx_Freeze et Nuitka, il est temps de les comparer en détail pour vous aider à choisir la meilleure solution en fonction de vos besoins.
1. Tableau comparatif des outils
Critères | PyInstaller | auto-py-to-exe | cx_Freeze | Nuitka |
---|---|---|---|---|
Exécutable unique (.exe ) | ✅ Oui (--onefile ) | ✅ Oui (--onefile ) | ❌ Non | ✅ Oui (--onefile ) |
Interface graphique (GUI) | ❌ Non | ✅ Oui | ❌ Non | ❌ Non |
Facilité d’utilisation | ✅ Facile | ✅ Très simple | ⚠️ Moyenne | ⚠️ Avancé |
Besoin d’un compilateur C | ❌ Non | ❌ Non | ❌ Non | ✅ Oui (MinGW) |
Taille des fichiers générés | ⚠️ Grand | ⚠️ Grand | ✅ Plus léger | ⚠️ Très grand (sans optimisation) |
Compatibilité multi-plateforme | ✅ Windows, Linux, macOS | ❌ Windows uniquement | ✅ Windows, Linux, macOS | ✅ Windows, Linux, macOS |
Support des bibliothèques externes | ✅ Oui | ✅ Oui | ✅ Oui (nécessite config) | ✅ Oui (performance optimisée) |
Protection du code source | ❌ Faible | ❌ Faible | ❌ Faible | ✅ Excellente (compilation en C) |
Optimisation des performances | ❌ Aucune | ❌ Aucune | ❌ Aucune | ✅ Oui (compilé en C) |
Recommandé pour | 🔰 Usage général | 👶 Débutants | 🏢 Applications complexes | 🚀 Performance & Sécurité |
2. Quelle méthode choisir en fonction de votre besoin ?
🔹 Si vous êtes débutant et voulez un outil simple
👉 Choisissez auto-py-to-exe
✅ Interface graphique intuitive
✅ Convient aux utilisateurs qui ne veulent pas utiliser la ligne de commande
❌ Ne fonctionne que sous Windows
🔹 Si vous voulez une solution rapide et polyvalente
👉 Choisissez PyInstaller
✅ Facile à installer et à utiliser
✅ Fonctionne sur Windows, Linux et macOS
✅ Gère la majorité des bibliothèques Python
❌ Fichiers .exe
parfois volumineux
🔹 Si votre application est complexe et a des fichiers externes
👉 Choisissez cx-Freeze
✅ Meilleure gestion des dépendances externes
✅ Génère un dossier avec les fichiers nécessaires (plus propre que PyInstaller)
✅ Compatible avec macOS et Linux
❌ Nécessite un peu plus de configuration
🔹 Si vous recherchez des performances optimisées et une meilleure protection du code
👉 Choisissez Nuitka
✅ Compile Python en C pour des exécutables plus rapides
✅ Protège votre code contre le reverse-engineering
✅ Idéal pour les applications gourmandes en ressources
❌ Nécessite un compilateur C (MinGW sous Windows)
❌ Temps de compilation plus long
3. Exemples concrets d’utilisation
Type de projet | Outil recommandé |
---|---|
Petit script Python sans dépendances | auto-py-to-exe (pour la facilité) ou PyInstaller |
Programme avec interface graphique (Tkinter, PyQt, wxPython) | PyInstaller ou cx-Freeze |
Application avec de nombreux fichiers externes | cx-Freeze |
Script nécessitant des performances élevées | Nuitka |
Code confidentiel à protéger | Nuitka |
Projet multi-plateforme (Windows/Linux/macOS) | PyInstaller ou cx-Freeze |
Débutant souhaitant un outil simple | auto-py-to-exe |
4. Conclusion : Quelle est la meilleure solution ?
Il n’existe pas de solution unique, tout dépend de vos besoins :
- PyInstaller est le choix par défaut pour la plupart des utilisateurs.
- auto-py-to-exe est idéal pour ceux qui veulent une interface graphique.
- cx-Freeze convient aux projets nécessitant une gestion fine des dépendances.
- Nuitka est le meilleur choix si vous cherchez des performances élevées et une sécurité renforcée.
En résumé :
- Pour un usage rapide et simple → PyInstaller
- Pour une interface graphique intuitive → auto-py-to-exe
- Pour une gestion avancée des dépendances → cx-Freeze
- Pour de la performance et de la protection du code → Nuitka
🎯 Derniers conseils pour optimiser votre exécutable
- Réduire la taille du fichier avec UPX : pip install upx upx mon_programme.exe
- Tester l’exécutable sur une autre machine pour vérifier qu’il fonctionne sans dépendances manquantes.
- Signer numériquement votre application si vous la distribuez à grande échelle pour éviter qu’elle soit bloquée par les antivirus.