Cours
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
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.

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.

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.

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.

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 :

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.