Accéder au contenu principal

Deux méthodes simples pour convertir un fichier Python en fichier Exe

Apprenez ce qu'est un fichier exécutable et pourquoi il peut être utile, tout en regardant comment convertir un script Python en un exécutable à l'aide de auto-py-to-exe.
Actualisé 4 oct. 2024  · 6 min de lecture

Les fichiers Python peuvent être exécutés de deux manières principales : à l'aide du terminal ou dans un éditeur de texte/IDE de votre choix. Notez qu'un fichier Python est simplement un programme ou un script écrit avec le code source Python et enregistré avec l'extension de fichier .py. Il existe plusieurs scénarios dans lesquels vous pouvez souhaiter cacher votre code source lorsque vous partagez des scripts Python avec d'autres personnes. Une façon d'y parvenir est de convertir votre fichier Python en un fichier exécutable.

Dans cet article, nous aborderons certains des scénarios qui justifient la conversion de votre fichier Python en un exécutable. Nous montrerons également comment convertir un fichier Python en un fichier exécutable à l'aide de deux bibliothèques Python : Pyinstaller et auto-py-to-exe.

Clonez ce dépôt Github pour suivre ce tutoriel.

Pourquoi convertir Python en exe

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

Plusieurs raisons peuvent vous inciter à convertir un programme Python en un fichier exécutable. Examinons-en quelques-uns :

Activité malveillante

Malheureusement, certaines personnes sur l'internet aiment diffuser des logiciels malveillants pour infecter les appareils d'autres personnes et voler leurs informations. Une façon de contrer ces personnes est d'éviter de jouer le jeu de leurs escroqueries - cela signifie 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 pouvez souhaiter convertir un fichier Python en un exécutable est de partager une application avec d'autres utilisateurs. Un programme Python typique peut comporter plusieurs dépendances qu'un autre utilisateur devra installer avant que le programme puisse s'exécuter. Que se passe-t-il si la personne ne sait pas coder ? Dans ce 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 connaître Python.

Sauvegarde du code source

Mais même s'ils savent qui coder, la conversion d'un fichier Python en fichier exécutable peut être une bonne option pour éviter que votre code ne soit volé. 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 lui-même.

Planification des tâches

Vous pouvez également programmer une tâche sur votre ordinateur pour 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

Tutoriel de conversion de Python en exe 

Maintenant que vous savez ce que sont les fichiers .exe et que vous savez pourquoi vous souhaitez convertir un fichier Python en fichier .exe, voyons comment le faire en Python. Dans cette section, nous aborderons deux frameworks : pyinstaller et auto-py-to-exe. 

Cette démonstration utilisera le jeu de données ouvertes Airbnb de la ville de New York.  

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

Note : Soyez extrêmement prudent 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 s'assurer 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)

Note : nous avons copié et collé ce script dans les répertoires pyinstaller 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 a son propre environnement virtuel dans lequel nous avons installé les exigences : voir les exigences de pyinstaller ou les exigences d'auto-py-to-exe. Si vous suivez le code, assurez-vous 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 - en savoir plus sur l'écriture de fonctions en Python - qui lit un ensemble de données et définit ensuite 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 pour générer un ensemble de données formatées. 

Tutoriel Pyinstaller

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

L'étape suivante consiste à exécuter la commande suivante : 

pyinstaller --onefile validation.py

Au départ, vous verrez plusieurs journaux dont le dernier dira quelque chose du genre "completed successfully" (terminé avec succès) - ce qui signifie que le fichier exécutable a été créé avec succès. 

fichier exécutable en cours de création

Figure 1 : Journaux indiquant que le fichier exécutable a été créé et qu'il s'est achevé avec succès.

L'exécution de ce programme créera deux nouveaux répertoires, build et dist, 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 jeu de données

Figure 2 : Un GIF montrant l'exécution de validation.exe sur un jeu de données.

Pour exécuter le script, il suffit de cliquer dessus. Une console s'affiche et vous demande d'insérer le nom de fichier des données sur lesquelles vous souhaitez effectuer la validation. Une fois que vous avez saisi le nom du fichier, la console se ferme et les données validées sont créées dans le même répertoire que le fichier validation.exe (voir figure 2). 

Auto py to exe Tutoriel 

La première étape de la création d'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 

Vous devriez obtenir une interface utilisateur graphique (GUI) qui nous aidera à convertir notre fichier Python en un fichier exécutable. 

interface utilisateur graphique

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

Note : si cela ne fonctionne pas, assurez-vous d'avoir créé un environnement virtuel dans le répertoire auto-py-to-exe et d'avoir 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 à remplir. Examinons chacun d'entre eux et cassons-les : 

  • Lieu spécifique : Dans ce champ, vous devez ajouter l'emplacement du script du fichier Python que vous souhaitez convertir en exécutable.  
  • Un seul fichier : C'est ici que vous choisissez de créer un répertoire ou un fichier unique. Un répertoire unique contiendra toutes les dépendances nécessaires à l'exécution de votre script et un fichier exécutable, tandis que la sélection de "Un fichier" créera un seul fichier exécutable. 
  • Fenêtre de la console : Le choix entre une fenêtre de console "basée sur la console" ou "basée sur la fenêtre" dépend de ce qui est renvoyé par votre script. Par exemple, le script que nous avons créé ci-dessus demande à l'utilisateur de saisir un nom de fichier. La solution "basée sur la console" est donc recommandée, car elle ouvre la console après l'exécution du fichier exécutable. S'il n'est pas nécessaire d'afficher les sorties de la console après l'exécution du fichier exécutable, l'option "Basé sur la fenêtre" est une bonne solution. 

Nous disposons également d'autres options pour configurer la création de notre fichier exécutable (c'est-à-dire ajouter des icônes, des fichiers supplémentaires, etc.) Dans cette section, nous pouvons également modifier le chemin d'accès à l'endroit où nous voulons exporter les fichiers générés par notre fichier exécutable : pour ce faire, sélectionnez l'option "Settings" et naviguez jusqu'au répertoire de sortie de votre choix. La dernière étape consiste à sélectionner "Convert .py to .exe" pour convertir notre fichier Python. 

Reportez-vous au GIF de la figure 4 pour voir comment nous avons configuré notre fichier exécutable. 

Auto py to exe

Figure 4 : Un GIF démontrant la configuration de l'auto-py-to-exe

Lorsque nous retournons dans le répertoire auto-py-to-exe, il y a un répertoire appelé output : c'est là que se trouve notre fichier validation.exe. Sélectionnez le fichier pour l'exécuter, ce qui fera apparaître une console vous demandant d'entrer un nom de fichier :

fichier de validation exécutable

Figure 5 : Console renvoyée lors de l'exécution du fichier de validation exécutable. 

Il vous suffit de saisir le nom du fichier - dans cet exemple, AB_NYC_2019.csv - et d'appuyer sur la touche 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.

Récapitulation

Dans cet article, vous avez appris : 

  • Ce qu'est un fichier Python
  • Qu'est-ce qu'un fichier exécutable et pourquoi il peut être utile ? 
  • Comment convertir un script Python en un exécutable en utilisant pyinstaller, qui est un excellent outil pour ceux qui sont plus à l'aise avec les opérations en ligne de commande. 
  • Comment convertir un script Python en un fichier exécutable en utilisant auto-py-to-exe, qui fournit aux utilisateurs une interface graphique pour configurer la façon dont le fichier exécutable doit être créé. 

Découvrez comment vous pouvez tirer parti de Python pour faire de la science des données dans la filière DataCamps Data Scientists with Python.

Sujets

Cours pour Python

Certification disponible

cours

Python intermédiaire

4 hr
1.1M
Améliorez vos compétences en science des données en créant des visualisations à l'aide de Matplotlib et en manipulant des DataFrames avec pandas.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates a offert plus de 20k bourses d'études à nos partenaires à but non lucratif au deuxième trimestre 2023. Découvrez comment des apprenants défavorisés et assidus ont transformé ces opportunités en réussites professionnelles qui ont changé leur vie.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire

Découvrez le parcours inspirant de Saghar Hazinyar, diplômée de Code to Inspire, qui a surmonté les défis en Afghanistan et s'est épanouie grâce à une bourse de DataCamp Donates.
Fereshteh Forough's photo

Fereshteh Forough

4 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

blog

2022-2023 Rapport annuel DataCamp Classrooms

À l'aube de la nouvelle année scolaire, DataCamp Classrooms est plus motivé que jamais pour démocratiser l'apprentissage des données, avec plus de 7 650 nouveaux Classrooms ajoutés au cours des 12 derniers mois.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 min

blog

Nous avons fait don de bourses DataCamp Premium à un million de personnes, et ce n'est pas fini.

Réparties entre nos deux programmes d'impact social, DataCamp Classrooms et #DCDonates, les bourses offrent un accès illimité à tout ce que DataCamp Premium a à offrir.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Voir plusVoir plus