2115 views
# Distribuer un logiciel en Python / Tkinter avec Pyinstaller Pyinstaller permet de créer un exécutable Linux, MacOS ou Windows à partir d'un script en python. NB : Pyinstaller sous Linux crée uniquement un éxécutable Linux, pyinstaller sous Windows crée uniquement un éxécutable Windows, etc. Cependant on peut installer Pyinstaller sous Wine pour créer des éxécutables Windows depuis une machine sous Linux. ## Installation de pyinstaller Doc de référence : https://pyinstaller.org/en/stable/installation.html En ligne de commande, sous Linux ou Windows : `pip install pyinstaller` En cas d'utilisation via Wine : `wine python.exe Scripts/pip.exe install pyinstaller` ## Création de l'éxécutable ### Commande Se placer dans le dossier contenant le fichier .py et lancer la commande : `pyinstaller monfichier.py` Si des ressources associées sont nécessaires, les inclure : `--add-data 'sousdossier:sousdossier'` Ce qui donne : `pyinstaller --add-data 'sousdossier:sousdossier' monfichier.py` Sous Windows, remplacer le ":" par ";" donc : `pyinstaller --add-data 'sousdossier;sousdossier' monfichier.py` Sous Windows, on peut ajouter une icône au format ico : `pyinstaller --add-data 'sousdossier;sousdossier' --icon 'sousdossier/images/icone.ico' monfichier.py` Et l'option "-w" masquera la fenêtre MS-DOS : `pyinstaller -w --add-data 'sousdossier;sousdossier' --icon 'sousdossier/images/icone.ico' monfichier.py` Sous Wine, il faut appeler pyinstaller.exe : `wine pyinstaller.exe -w --add-data 'sousdossier;sousdossier' --icon 'sousdossier/images/icone.ico' monfichier.py` *NB : il faut s'assurer d'avoir toutes les bibliothèques nécessaires au logiciel installées. C'est généralement le cas si on compile sur la même machine qui a servi à développer.* *NB 2 : si l'on développe avec Python sous Linux et qu'on compile avec Wine, penser à installer sous Wine les bibliothèques nécessaires, via pip install.* ### Récupération de l'éxécutable Deux dossiers sont créés : build et dist. L'éxécutable se trouve dans le dossier dist, qui contient également toutes les bibltiohèques nécessaires, le logiciel peut donc être exporté en mode "portable". ## Création d'un installeur Sous Linux, on peut créer un paquet DEB par exemple. Sous Windows, on peut créer un installeur avec Innosetup pour copier les fichiers dans Program Files et ajouter un raccourci sur le bureau, voir https://jrsoftware.org/isinfo.php ## Licence Ce tutoriel est sous Licence Creative Commons BY SA mai 2023 par Arnaud Champollion