convertir py en exe

Convertir votre fichier .py (python) en un fichier .exe (executable) : Guide étape par étape

Mis à jours 27 février 2025

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 :

  1. PyInstaller : la méthode la plus courante et polyvalente.
  2. auto-py-to-exe : une interface graphique simple basée sur PyInstaller.
  3. cx_Freeze : une alternative efficace pour des applications complexes.
  4. 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é.

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.

convertir python en fichier exe sur Pc
convertir python en fichier exe

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èresPyInstallerauto-py-to-execx_FreezeNuitka
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 :

  1. Installer PyInstaller : pip install pyinstaller
  2. Générer un exécutable de base : pyinstaller –onefile mon_programme.py
  3. Ajouter des options avancées : pyinstaller –onefile –icon=icone.ico –noconsole mon_programme.py
  4. 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)

Auto Py To Exe: Ajouter une icône

Si vous souhaitez une icône spécifique pour votre exécutable :

  1. Cliquez sur “Browse” à côté de “Icon”.
  2. 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.

Auto Py To Exe: Ajouter des fichiers supplémentaires

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

Auto To Exe: Emplacement de sortie de votre exe converti

Une fois toutes les options configurées :

  1. Cliquez sur le bouton “Convert .py to .exe”.
  2. Patientez quelques minutes (la durée dépend de la taille de votre script et des dépendances).
  3. Une fois terminé, votre exécutable sera disponible dans le dossier “output”.
Auto Py TO exe: Dossier de la sortie

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èresauto-py-to-exePyInstaller
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 :

  1. Installer auto-py-to-exe : pip install auto-py-to-exe
  2. Lancer l’interface : auto-py-to-exe
  3. Sélectionner son script et configurer les options.
  4. 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.

cx_Freeze

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èrescx_FreezePyInstallerauto-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 :

  1. Installer cx_Freeze : pip install cx_Freeze
  2. Créer un fichier setup.py et configurer les options.
  3. Lancer la conversion avec : python setup.py build
  4. 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

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

  1. Installez UPX :
pip install upx
  1. 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 :

  1. Ouvrez Panneau de configuration > Système > Paramètres avancés > Variables d’environnement.
  2. Ajoutez le chemin vers MinGW (exemple : C:\MinGW\bin).
  3. 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 :

  1. Ajoutez une exception dans votre antivirus.
  2. 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èresNuitkaPyInstallercx_Freezeauto-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 :

  1. Installer Nuitka : pip install nuitka
  2. Installer un compilateur C (MinGW sur Windows).
  3. Générer un exécutable optimisé : nuitka –standalone –onefile –mingw64 script.py
  4. 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èresPyInstallerauto-py-to-execx_FreezeNuitka
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 projetOutil recommandé
Petit script Python sans dépendancesauto-py-to-exe (pour la facilité) ou PyInstaller
Programme avec interface graphique (Tkinter, PyQt, wxPython)PyInstaller ou cx-Freeze
Application avec de nombreux fichiers externescx-Freeze
Script nécessitant des performances élevéesNuitka
Code confidentiel à protégerNuitka
Projet multi-plateforme (Windows/Linux/macOS)PyInstaller ou cx-Freeze
Débutant souhaitant un outil simpleauto-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.
Aina Strauss

À lire aussi

Meilleures Pratiques pour la Distribution d'Applications Python

Meilleures Pratiques pour la Distribution d’Applications Python

Table de matièrePourquoi convertir un script Python en exécutable (.exe) ?1. Exécution simplifiée pour l’utilisateur …