Transformer un script Python en exécutable avec PyInstaller
Nous allons voir ici comment finaliser votre script Python en le compilant en exécutable grâce au programme PyInstaller. Cela permet par exemple d'utiliser votre script sur n'importe quel ordinateur, qu'il y ai ou non Python installé, sans problème de librairie non installée ni conflit de version !
PyInstaller est un programme bien connu, mais avec très peu de documentation francophone. Ce tuto a donc pour but de vous expliquer comment installer puis utiliser le programme simplement.
Installation de PiP
PyInstaller est un paquet de PyPI ( PiP), gestionnaire de librairies pour Python. Il vous faudra donc passer par lui pour installer PyInstaller. Il est directement fournit avec les versions de Python3.5 ou plus et avec Python2. Pour vérfier si vous l'avez, depuis un terminal :
`pip -v`
Note : si vous êtes sous Windows, placez-vous dans le dossier C:\Program Files\Pyton\PythonX.X\Scripts
ou `C:\Users\votre_nom_utilisateur\AppData\Roaming\Python\PythonX.X\Scripts` si Python n'est pas installé en administrateur sur votre ordinateur.
Je vous conseille dans tous les cas d'ajouter ce chemin au PATH de Windows, afin de pouvoir utiliser pip depuis n'importe quel dossier de travail (voir ici).
Si la commande vous retourne que la fonction pip
est inconnue au bataillon, il va falloir alors l'installer.
- Pour Linux : récupérez l'installateur via curl
`curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py`
Puis lancez simplement :
`python get-pip.py` ou `python3 get-pip.py` selon la version que vous voulez utiliser.
- Pour Windows : téléchargez l'installateur ici, lancez un terminal de commandes (cmd), mettez-vous dans le dossier où se situe le fichier téléchargé, puis :
`python get-pip.py`
et
`python3 get-pip.py` sous Linux pour installer pip3, qui ne fonctionne que pour Python3 et non Python2.
Note : Par défaut sous Windows, il vous faudra pour utiliser PiP et ses paquets se rendre à l'aide d'un terminal dans le dossier :
`C:\Program Files\Pyton\PythonX.X\Scripts`
Pour mettre à jour PiP, vous avez la commande : `pip install –upgrade pip` (à remplacer par pip3 si besoin bien évidemment).
Installation de PyInstaller
Une fois PiP installé sur votre ordinateur, l'installation de PyInstaller se fait très facilement. En effet, il suffit maintenant d'ouvrir un terminal de commandes et de rentrer la commande suivante :
`pip install pyinstaller`
Notes :
- Pour Windows, pensez à vous rendre dans le dossier `Scripts` situé dans le dossier de Python.
- Pour que PyInstaller fonctionne sous Python3, remplacez pip par pip3.
- Si vous n'avez pas les droits d'administrateur sur votre ordinateur, rajoutez l'option `–user` à la fin de la commande.
Et…c'est tout ! Le programme est installé, voyons maintenant comment on l'utilise !
Applications
PyInstaller n'a pas d'interface graphique, c'est un simple script Python, mais il a l'avantage (contrairement à ses quelques concurrents) de fonctionner aussi bien pour toutes les versions de Python3 que pour Python2. Il va donc nous falloir utiliser ici encore le terminal de commandes.
Sur le principe, le programme fonctionne simplement comme suit :
`pyinstaller votre_script_en_python.py`
Seulement, et notamment si vous travaillez sous Windows, quelques informations supplémentaires sont nécessaires.
En effet sous Windows vous allez devoir dans un premier temps vous placez dans le fameux dossier Script avant d'utiliser la commande.
Ensuite, voici deux options qui pourraient bien vous être utiles :
- `-F, –onefile`, qui permet la création d'un exécutable qui fonctionne “seul” : vous n'aurez qu'à le lancer sans vous souciez d'avoir les bonnes librairies au bon endroit etc.
- `-w, –windowed, –noconsole`, qui ici supprime l'apparition d'une fenêtre de bash vide en cas d'interface graphique. Cela sera notamment utile aux scripts écrits avec Tkinter ou PyQt.
Elles sont à utiliser comme ci-dessous :
`pyinstaller –onefile -w \chemin_vers_votre_script\votre_script.py`
Votre exécutable sera alors placé dans le dossier Dist à l'emplacement de votre script, qui sera créé s'il n'est pas déjà existant (donc aucune inquiétude là-dessus). Il ne vous reste plus qu'à le placer où bon vous semble ou même le placer sur une clé USB et l'utiliser à souhait !
Enfin, une information à retenir : si vous travailler sous Windows, l'exécutable sera un programme Windows, qui ne fonctionnera pas sur d'autres système d'exploitations, et vice-versa. Si vous voulez donc créer un programme utilisable sur Windows et Linux, il vous faudra alors utiliser PyInstaller sur chacune des distributions respectives.