répertoire de l'application (par copie ou, mieux, par partage du système de fichiers).
Pour plus de détails, vous pouvez vous référer à la documentation de PyInstaller pour
le croisement de plateformes.
La technique de création d'un fichier exécutable qu'on vient de voir est évidemment la
plus simple pour la distribution et l'utilisation. En revanche, on obtient un gros fichier
monolithique. Ceci présente deux désavantages :
à chaque exécution, tout l'exécutable doit être (re-)lu et les bibliothèques qu'il
contient doivent être (re-)chargées : on perd tout l'intérêt des bibliothèques
dynamiques par rapport aux bibliothèques statiques ;
l'application est une boîte noire, qu'on peut difficilement ouvrir ; on ne peut pas
avoir un fichier de configuration éditable à la main, qui serait bien utile ; de plus,
à chaque nouvelle version, il faut redistribuer tout l'exécutable alors qu'on sait
pertinemment que seul le code qu'on a écrit a changé, ce qui représente une
fraction minime du fichier.
La technique de distribution en un répertoire que nous allons voir à présent pallie ces
défauts.
Distribution en un répertoire
Pour distribuer l'application BiblioApp en un répertoire, saisissez la commande :
pyinstaller -D -n biblioapp start_biblio_app.py
Après exécution, vous aurez un nouveau répertoire dist/biblioapp/ qui contient un
exécutable biblioapp (ou biblioapp.exe pour Windows) ainsi que d'autres fichiers
ou sous-répertoires. On peut vérifier que l'exécutable tourne comme avant. Le
répertoire dist/biblioapp/ contient tout ce qui est nécessaire à l'exécution ; ce
répertoire peut donc être compressé, empaqueté et distribué selon les modalités du
système d'exploitation (fichier zip, tar.gz, etc.). La discussion vue à la section
précédente sur la console ainsi que l'option pour la désactiver restent applicables ici.
On peut remarquer que la taille du fichier exécutable, qui ne contient plus que le code
développé, est considérablement réduite par rapport à celui généré avec l'option -F
(1,2 Mo dans notre test sous Windows). Il est donc possible, une fois que le répertoire
complet a été déployé sur la machine cible, de faire des maintenances en ne livrant que
le petit exécutable de l'application proprement dite, qu'il suffira de substituer à
47
Pour plus de détails, vous pouvez vous référer à la documentation de PyInstaller pour
le croisement de plateformes.
La technique de création d'un fichier exécutable qu'on vient de voir est évidemment la
plus simple pour la distribution et l'utilisation. En revanche, on obtient un gros fichier
monolithique. Ceci présente deux désavantages :
à chaque exécution, tout l'exécutable doit être (re-)lu et les bibliothèques qu'il
contient doivent être (re-)chargées : on perd tout l'intérêt des bibliothèques
dynamiques par rapport aux bibliothèques statiques ;
l'application est une boîte noire, qu'on peut difficilement ouvrir ; on ne peut pas
avoir un fichier de configuration éditable à la main, qui serait bien utile ; de plus,
à chaque nouvelle version, il faut redistribuer tout l'exécutable alors qu'on sait
pertinemment que seul le code qu'on a écrit a changé, ce qui représente une
fraction minime du fichier.
La technique de distribution en un répertoire que nous allons voir à présent pallie ces
défauts.
Distribution en un répertoire
Pour distribuer l'application BiblioApp en un répertoire, saisissez la commande :
pyinstaller -D -n biblioapp start_biblio_app.py
Après exécution, vous aurez un nouveau répertoire dist/biblioapp/ qui contient un
exécutable biblioapp (ou biblioapp.exe pour Windows) ainsi que d'autres fichiers
ou sous-répertoires. On peut vérifier que l'exécutable tourne comme avant. Le
répertoire dist/biblioapp/ contient tout ce qui est nécessaire à l'exécution ; ce
répertoire peut donc être compressé, empaqueté et distribué selon les modalités du
système d'exploitation (fichier zip, tar.gz, etc.). La discussion vue à la section
précédente sur la console ainsi que l'option pour la désactiver restent applicables ici.
On peut remarquer que la taille du fichier exécutable, qui ne contient plus que le code
développé, est considérablement réduite par rapport à celui généré avec l'option -F
(1,2 Mo dans notre test sous Windows). Il est donc possible, une fois que le répertoire
complet a été déployé sur la machine cible, de faire des maintenances en ne livrant que
le petit exécutable de l'application proprement dite, qu'il suffira de substituer à
47
