Accéder au contenu principal

Trois méthodes pour convertir un script Python en fichier exe

Découvrez ce qu'est un fichier exécutable et comment convertir un script Python en fichier .exe à l'aide de PyInstaller, Nuitka et auto-py-to-exe.
Actualisé 15 janv. 2026  · 7 min lire

Dans cet article, je vais vous présenter quelques scénarios qui justifient la conversion de votre fichier Python en un fichier exécutable. Je vais également vous montrer comment convertir un fichier Python en fichier exécutable à l'aide de trois bibliothèques Python : Pyinstaller, Nuitka et auto-py-to-exe.

Veuillez cloner ce dépôt Github pour suivre ce tutoriel.

Pourquoi convertir Python en .exe ?

Les fichiers exécutables, c'est-à-dire les fichiers enregistrés avec l'extension .exe, sont utilisés pour installer ou exécuter des applications logicielles sur les ordinateurs équipés du système d'exploitation Windows. Le fichier qui permet à un ordinateur Windows d'exécuter une application est le fichier d'.exe.

Il existe plusieurs raisons pour lesquelles vous pourriez souhaiter convertir un programme Python en fichier exécutable. Examinons-en quelques-uns :

Activité malveillante

Malheureusement, certaines personnes sur Internet ont tendance à diffuser des logiciels malveillants afin d'infecter les appareils d'autres personnes et de voler leurs informations. Une manière de contrer ces individus consiste à éviter de tomber dans leurs pièges, c'est-à-dire à ne pas télécharger ou ouvrir aveuglément des fichiers .exe qui ne proviennent pas d'une source fiable.

Accessibilité

Une autre raison pour laquelle vous pourriez souhaiter convertir un fichier Python en exécutable est de partager une application avec d'autres utilisateurs. Un programme Python type peut comporter plusieurs dépendances qu'un autre utilisateur devra installer avant que le programme puisse fonctionner. Que faire si la personne ne sait pas coder ? Dans de tels cas, il peut être déraisonnable d'attendre d'un utilisateur qu'il apprenne à coder avant d'utiliser une application. La conversion d'un fichier Python en fichier exécutable permet aux utilisateurs d'accéder à votre programme sans avoir besoin de connaître Python.

Protection du code source

Cependant, même si vous savez comment coder, convertir un fichier Python en fichier exécutable peut être une option judicieuse pour éviter que votre code ne soit compromis. Un fichier exécutable empêche le vol de code, car il crée une version compilée de votre code source, ce qui le rend plus difficile à comprendre que le code source réel.

Planification des tâches

Vous pouvez également programmer une tâche sur votre ordinateur afin d'exécuter un fichier .exe à un moment précis.

Apprenez Python à partir de zéro

Maîtrisez Python pour la science des données et acquérez des compétences recherchées.
Commencez à apprendre gratuitement

Comment convertir un script Python en fichier .exe 

Maintenant que vous comprenez ce que sont les fichiers .exe et pourquoi vous pourriez souhaiter convertir un fichier Python en fichier .exe, examinons comment procéder en Python. Dans cette section, nous aborderons trois frameworks : pyinstaller, nuitka et auto-py-to-exe.

Il est important de noter que auto-py-to-exe présente des problèmes de compatibilité connus avec Python 3.11 et les versions ultérieures, et n'est généralement fiable que jusqu'à Python 3.10, à moins d'utiliser des versions plus récentes spécifiques et des dépendances soigneusement adaptées.

Cela étant dit, nous pouvons commencer.

Préparation du script

Cette démonstration utilisera l'ensemble de données ouvertes Airbnb de la ville de New York

Avant que les scientifiques des données puissent analyser un ensemble de données, celles-ci doivent être formatées de manière à être compatibles avec les outils qu'ils utilisent. Ainsi, la création d'un schéma de validation définit efficacement toutes les validations qui s'appliquent à chaque champ de manière déclarative. Ce processus peut être assez répétitif. Afin d'éviter à nos scientifiques des données d'effectuer des tâches répétitives, nous avons développé un script de validation automatisé qui s'exécute périodiquement. 

Remarque : Veuillez faire preuve d'une grande prudence lorsque vous utilisez des chemins relatifs si votre script doit lire des données. Il est préférable d'utiliser des chemins absolus pour garantir que votre exécutable fonctionne comme prévu. 

import pandas as pd
from pandas.api.types import CategoricalDtype

def perform_validation(filename:str):
    """
    A function to validate inputs for NYC Airbnb Open data.
    """
    path_to_data = "../.."
    data = pd.read_csv(f"{path_to_data}{filename}")



    # Convert neighbourhood_group to type category
    neighbourhood_group_to_cat = CategoricalDtype(
        categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"],
        ordered=False
        )
 
    data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat)

    # Convert room_type to type category
    room_type_to_cat = CategoricalDtype(
        categories=["Entire home/apt", "Private room", "Shared room"],
        ordered=False
    )

    data["room_type"] = data["room_type"].astype(room_type_to_cat)

    # Convert last_review to datetime
    data["last_review"] = pd.to_datetime(data["last_review"])

    # Minimum nights a person can stay is one night
    assert data["minimum_nights"].min() >= 1

    # Minimum number of reviews is 0
    assert data["number_of_reviews"].min() >= 0
 
    # Minimum number of reviews per month
    assert data["reviews_per_month"].min() >= 0.00

    # Minimum amount of listings per host
    assert data["calculated_host_listings_count"].min() >= 1

    # Number of days when listing is available for books
    # Could be 0 if tennant has long term booking
    assert data["availability_365"].min() >= 0

    # Save validated data
    data.to_csv("validated_ab_nyc_2019.csv", index=False)

if __name__ == "__main__":
    # User inputs filename
    filename = input("Enter filename: ")
 
    # Ensure it's a string
    if not filename.isalpha():
        filename = str(filename)
 
    # Automated validation
    perform_validation(filename)

Remarque : nous avons copié et collé ce script dans les répertoires pyinstaller, nuitka et auto-py-to-exe

# Directory structure
|   AB_NYC_2019.csv
|  
+---auto_py_to_exe
|   |   requirements.txt
|   |   validation.py         
+---pyinstaller
    |   requirements.txt
    |   validation.py

Chaque répertoire dispose de son propre environnement virtuel dans lequel nous avons installé les prérequis : veuillez consulter les prérequis de pyinstaller ou les prérequis de auto-py-to-exe. Si vous suivez le code, veuillez vous assurer de créer un environnement virtuel dans le répertoire pyinstaller et le répertoire auto-py-to-exe. 

À un niveau élevé, le script ci-dessus contient une fonction – pour en savoir plus sur l'écriture de fonctions en Python – qui lit un ensemble de données, puis définit le format attendu de champs spécifiques dans les données. L'étape suivante consiste à convertir ce script Python en un fichier exécutable qui pourrait être lancé périodiquement afin de générer un ensemble de données formaté. 

Méthode 1 : Pyinstaller

Pyinstaller vous permet de convertir rapidement un fichier Python en fichier exécutable depuis votre terminal. Une fois que vous avez créé votre environnement virtuel et installé les éléments requis pour votre script (y compris pyinstaller), veuillez ouvrir le terminal et naviguer jusqu'au répertoire où se trouve le fichier Python que vous souhaitez convertir. 

La prochaine étape consiste à exécuter la commande suivante : 

pyinstaller --onefile validation.py

Au départ, vous verrez plusieurs journaux, dont le dernier indiquera quelque chose comme « terminé avec succès », à condition que le fichier exécutable ait été créé avec succès. 

Fichier exécutable en cours de création

Figure 1 : Les journaux indiquent que le fichier exécutable a été créé et que l'opération s'est déroulée avec succès.

Une fois cette opération terminée, deux nouveaux répertoires, build et dist, seront créés dans le même répertoire que celui où se trouve le fichier Python. Dans le répertoire dist, vous trouverez le script validation.exe.

validation.exe sur un ensemble de données

Figure 2 : GIF illustrant l'exécution de validation.exe sur un ensemble de données.

Pour exécuter le script, veuillez cliquer dessus. Une console s'affichera alors, vous demandant d'insérer le nom du fichier contenant les données sur lesquelles vous souhaitez effectuer la validation. Une fois que vous aurez saisi le nom du fichier, la console se fermera et les données validées seront créées dans le même répertoire que le fichier d' validation.exe. Veuillez vous référer à la figure 2. 

Méthode 2 : Nuitka

Nuitka est une autre approche qui mérite d'être envisagée. Contrairement à PyInstaller, qui regroupe votre script Python avec l'interpréteur Python, Nuitka compile votre code Python en code C. Cela permet une meilleure protection du code source, une exécution potentiellement plus rapide et souvent des fichiers de taille réduite. Le compromis est un temps de compilation plus long et une configuration plus complexe.

Installation et configuration

Après avoir créé un environnement virtuel et installé Nuitka à l'aide de la commande ` pip install nuitka`, veuillez vous assurer qu'un compilateur C est disponible sur votre système. Le compilateur dont vous avez besoin dépend de votre système d'exploitation :

  • Windows : Veuillez télécharger et installer Microsoft Visual C++ Build Tools (gratuit) depuis le site Web de Visual Studio, ou utiliser MinGW.

  • macOS : Veuillez installer les outils de ligne de commande Xcode à l'aide de la commande suivante : xcode-select --install

  • Linux : GCC est généralement préinstallé ; si ce n'est pas le cas, veuillez l'installer via votre gestionnaire de paquets.

Une fois installé, Nuitka détectera automatiquement votre compilateur. Si vous rencontrez des difficultés, veuillez vous assurer que le compilateur est bien installé sur votre système PATH.

Conversion du script de validation avec Nuitka

Veuillez convertir le même script de validation Airbnb NYC à l'aide de Nuitka, comme nous l'avons fait avec PyInstaller et auto-py-to-exe. Pour compiler notre script en un fichier exécutable, veuillez exécuter :

python -m nuitka --onefile --follow-imports --include-package=pandas validation.py

Analysons chaque drapeau :

  • --onefile: Crée un fichier exécutable unique (au lieu d'un répertoire contenant plusieurs fichiers et dépendances).

  • --follow-imports: Inclut automatiquement tous les modules importés par votre script.

  • --include-package=pandas: Inclut explicitement le package pandas (certains packages ne sont pas détectés automatiquement, ce qui garantit qu'il est inclus).

Contrairement à PyInstaller, qui s'exécute en environ 30 secondes, Nuitka prendra beaucoup plus de temps, généralement entre 5 et 15 minutes, selon la complexité de votre code et la vitesse de votre système. Vous observerez la sortie de compilation dans le terminal, indiquant la progression de la phase de compilation C.

Une fois l'opération terminée, un message de confirmation s'affichera pour indiquer que le fichier exécutable a été créé. L'exécutable compilé est créé dans le même répertoire que le fichier d'validation.py.

Veuillez double-cliquer sur validation.exe ou l'exécuter à partir de la ligne de commande. Une fenêtre de console s'ouvrira pour vous demander d'entrer un nom de fichier, comme avec PyInstaller. Après avoir saisi AB_NYC_2019.csvet appuyé sur Entrée, la validation s'exécute, la console se ferme et un nouveau fichier validated_ab_nyc_2019.csv est créé dans le même répertoire, exactement comme dans la version PyInstaller.

Méthode 3 : auto-py-to-exe

La première étape pour créer un fichier exécutable à l'aide d'auto-py-to-exe consiste à l'exécuter à l'aide de la commande suivante : 

auto-py-to-exe 

Cela devrait afficher une interface utilisateur graphique (GUI) qui nous aidera à convertir notre fichier Python en fichier exécutable. 

interface utilisateur graphique

Figure 3 : L'interface utilisateur graphique est réapparue après l'exécution de la commande auto-py-to-exe. 

Remarque : si cela ne fonctionne pas, veuillez vous assurer que vous avez créé un environnement virtuel dans le répertoire auto-py-to-exe et installé le fichier requirements.txt dans votre environnement virtuel à l'aide de la commande suivante : pip install -r requirements.txt.

L'interface graphique comporte plusieurs champs que nous devons remplir. Examinons chacun d'entre eux et analysons-les : 

  • Emplacement précis : Dans ce champ, il est nécessaire d'indiquer l'emplacement du script du fichier Python que vous souhaitez convertir en exécutable.  
  • Onefile : C'est ici que vous pouvez choisir de créer un répertoire ou un fichier unique. Un seul répertoire contiendra toutes les dépendances nécessaires à l'exécution de votre script et un fichier exécutable, tandis que la sélection de « One File » (Un fichier) créera un seul fichier exécutable. 
  • Console Window: Le choix entre une fenêtre de console « basée sur la console » ou « basée sur la fenêtre » dépend du résultat renvoyé par votre script. Par exemple, le script que nous avons créé ci-dessus nécessite qu'un utilisateur saisisse un nom de fichier. Par conséquent, la solution « Console Based » est recommandée, car elle permet d'ouvrir la console après avoir exécuté le fichier exécutable. Si vous n'avez pas besoin d'afficher les sorties de la console après avoir exécuté le fichier exécutable, l'option « Window Based » (Basé sur une fenêtre) est appropriée. 

Nous disposons également d'autres options pour configurer la création de notre fichier exécutable (par exemple, ajouter des icônes, des fichiers supplémentaires, etc.). Dans cette section, il est également possible de modifier le chemin d'accès vers lequel nous souhaitons exporter les fichiers générés par notre fichier exécutable : pour ce faire, veuillez sélectionner l'option « Paramètres » et naviguer jusqu'au répertoire de sortie de votre choix. La dernière étape consiste à sélectionner « Convertir .py en .exe » pour convertir notre fichier Python. 

Veuillez consulter le GIF de la figure 4 pour observer comment nous avons configuré notre fichier exécutable. 

Auto py vers exe

Figure 4 : Un GIF illustrant la configuration pour auto-py-to-exe

Lorsque nous retournons dans le répertoire auto-py-to-exe, nous trouvons un répertoire nommé output : c'est là que se trouve notre fichier validation.exe. Veuillez sélectionner le fichier à exécuter, ce qui affichera une console vous invitant à saisir un nom de fichier :

fichier de validation exécutable

Figure 5 : La console est revenue après avoir exécuté le fichier de validation. 

Veuillez saisir le nom du fichier – dans cet exemple, AB_NYC_2019.csv – et appuyez sur Entrée. Cela fermera la console et créera un nouveau fichier dans le répertoire de sortie (où se trouve le fichier exécutable) appelé validated_ab_nyc_2019.csv.

PyInstaller par rapport à Nuitka

Voiciune comparaison entre Nuitka et PyInstaller sur le même script de validation, ainsi qu'auto-py-to-exe comme alternative GUI :

Système métrique

PyInstaller

auto-py-to-exe

Nuitka

Taille de l'exécutable

moyen

moyen

20 à 30 % plus petit

Temps de construction

moyen

moyen

16 fois plus long

Temps de démarrage

Environ 2 secondes

Environ 2 secondes

Environ 1 seconde

Durée d'exécution (tâche de validation)

Environ 3 secondes

Environ 3 secondes

Environ 2,5 secondes

Protection du code source

Modéré

Modéré

Excellent

Python 3.8–3.10

✅ Excellent

✅ Excellent

✅ Excellent

Python 3.11 et versions ultérieures

✅ Excellent

Problèmes connus

✅ Excellent

PyInstaller et Nuitka offrent tous deux une prise en charge fiable de toutes les versions modernes de Python, tandis qu'auto-py-to-exe présente des problèmes de compatibilité connus avec Python 3.11 et les versions ultérieures. Nuitka produit des exécutables plus petits et plus rapides avec une protection IP supérieure, mais le processus de compilation est environ 16 fois plus lent que PyInstaller.

Conclusion

Dans cet article, vous avez appris : 

  • Qu'est-ce qu'un fichier Python ?
  • Qu'est-ce qu'un fichier exécutable et pourquoi peut-il être utile ? 
  • Comment convertir un script Python en un fichier exécutable à l'aide de pyinstaller, un outil très utile pour ceux qui sont plus à l'aise avec les opérations en ligne de commande. 
  • Comment convertir un script Python en fichier exécutable à l'aide d'auto-py-to-exe, qui fournit aux utilisateurs une interface graphique (GUI) pour configurer la manière dont le fichier exécutable doit être créé. 

Découvrez comment vous pouvez exploiter Python pour faire de la science des données dans le cursus professionnel DataCamps Associate Data Scientist with Python.

Questions fréquentes

Puis-je inclure des fichiers supplémentaires (par exemple, des images, des fichiers de configuration) dans l'exécutable ?

Oui, ces trois outils vous permettent de regrouper les fichiers supplémentaires requis par votre script. Pour PyInstaller et Nuitka, vous pouvez utiliser l'option --add-data afin de spécifier les fichiers à inclure. Dans auto-py-to-exe, il existe une option dans l'interface graphique permettant d'ajouter des fichiers sous « Fichiers supplémentaires ». Veuillez vous assurer de spécifier correctement les chemins relatifs ou absolus afin que l'exécutable puisse accéder à ces fichiers.

Comment puis-je ajouter une icône personnalisée au fichier exécutable ?

Vous pouvez ajouter une icône personnalisée à votre fichier exécutable en spécifiant un fichier .ico. Pour PyInstaller, veuillez utiliser le drapeau « --icon » suivi du chemin d'accès à votre fichier .ico. Dans auto-py-to-exe, vous pouvez définir le chemin d'accès à l'icône dans le champ « Icon » (Icône) de l'interface graphique. Nuitka prend également en charge l'indicateur d'état de la mémoire ( --windows-icon-from-ico ). Veuillez noter que le fichier icône doit être au format .ico.

Pourquoi mon fichier exécutable est-il si volumineux et comment puis-je réduire sa taille ?

Les fichiers exécutables peuvent inclure toutes les dépendances, les bibliothèques et l'interpréteur Python, ce qui peut les rendre volumineux. Pour réduire la taille :

  • Veuillez utiliser l'option « --onefile » dans PyInstaller ou Nuitka pour regrouper tous les éléments dans un seul fichier.
  • Veuillez exclure les bibliothèques non nécessaires à l'aide de l'option « --exclude-module » dans PyInstaller ou Nuitka.
  • Envisagez d'utiliser des outils tels que UPX pour compresser le fichier exécutable obtenu (fonctionne avec PyInstaller et auto-py-to-exe).
  • Nous vous recommandons d'utiliser Nuitka, qui produit généralement des exécutables 20 à 30 % plus petits que PyInstaller.

Puis-je créer un fichier exécutable pour un autre système d'exploitation ?

PyInstaller, auto-py-to-exe et Nuitka sont tous spécifiques à une plateforme. Pour créer un exécutable pour un système d'exploitation différent, il est nécessaire d'utiliser des outils de compilation croisée ou de configurer une machine virtuelle ou un conteneur pour le système d'exploitation cible. Par exemple, pour créer un exécutable Windows sous Linux, vous pouvez utiliser Wine ou Docker avec un environnement Windows.

Quelles sont les alternatives à pyinstaller et auto-py-to-exe ?

D'autres outils permettant de créer des fichiers exécutables comprennent :

  • cx_Freeze : Un outil multiplateforme pour la création d'exécutables.
  • py2exe : Un outil spécifique à Windows permettant de créer des exécutables à partir de scripts Python.

Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Sujets

Cours sur Python

Cours

Python intermédiaire

4 h
1.3M
Mettez à niveau vos compétences en science des données en créant des visualisations à l'aide de Matplotlib et en manipulant des DataFrame avec pandas.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow