Maison >développement back-end >Tutoriel Python >Comment packager un script Python dans un fichier exécutable ? (détaillé)
Cet article vous explique comment packager un script Python dans un fichier exécutable ? (Détails), il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Python est un langage de script interprété et exécuté par un interprète. Sa méthode de publication :
Fichier .py : Pour les projets open source ou où le code source n'est pas si important, le code source est fourni directement, et les utilisateurs doivent installer Python eux-mêmes et installer diverses bibliothèques dépendantes. (C'est ainsi que procèdent divers packages d'installation officiels de Python)
Fichier .pyc : Certaines entreprises ou particuliers ne souhaitent pas que le code source soit vu par l'opérateur pour des raisons de confidentialité ou diverses raisons. . Vous pouvez publier à l'aide d'un fichier pyc. Le fichier pyc est un code binaire qui peut être reconnu par l'interpréteur Python, il est donc multiplateforme après la sortie. Les utilisateurs doivent installer la version correspondante de Python et les bibliothèques dépendantes.
Fichier exécutable : Pour les non-codeurs ou les utilisateurs novices, ce serait un désastre si vous leur demandiez d'installer Python et de devoir également gérer un tas de bibliothèques dépendantes. Pour ces utilisateurs, le moyen le plus simple consiste à fournir un fichier exécutable et à leur expliquer simplement comment l'utiliser. Ce qui est plus gênant, c'est que différents fichiers exécutables doivent être regroupés pour différentes plates-formes (Windows, Linux, Mac,...).
Cet article présente principalement la dernière méthode. .py et .pyc sont relativement simples et Python lui-même peut la gérer. Il existe de nombreuses façons de regrouper des scripts Python dans des fichiers exécutables. Cet article se concentre sur PyInstaller, et les autres sont uniquement à titre de comparaison et de référence.
Une comparaison des différents outils d'empaquetage est la suivante (extraite de l'article Geler votre code) :
Solution | Windows | Linux | OS X | Python 3 | License | One-file mode | Zipfile import | Eggs | pkg_resources support |
---|---|---|---|---|---|---|---|---|---|
bbFreeze | yes | yes | yes | no | MIT | no | yes | yes | yes |
py2exe | yes | no | no | yes | MIT | yes | yes | no | no |
pyInstaller | yes | yes | yes | no | GPL | yes | no | yes | no |
cx_Freeze | yes | yes | yes | yes | PSF | no | yes | yes | no |
py2app | no | no | yes | yes | MIT | no | yes | yes | yes |
PS. Parmi eux, pyInstaller et cx_Freeze sont tous deux bons. Certaines personnes sur stackoverflow ont également suggéré d'utiliser cx_Freeze, disant que c'est plus pratique. La nouvelle version de pkg_resources semble être prise en charge par pyInstaller.
Pour les utilisateurs dont le réseau est relativement stable et peuvent utiliser l'adresse source pip en douceur, exécutez simplement la commande suivante :
pip install pyinstaller
Habituellement, nous téléchargeons le package source, puis entrons dans le répertoire du package et exécutons la commande suivante (setuptools doit être installé) :
python setup.py install
Une fois l'installation terminée, vérifiez si l'installation a réussi :
pyinstaller --version
Une fois l'installation réussie, vous pouvez utiliser la commande suivante :
pyinstaller
: La commande principale pour empaqueter les fichiers exécutables sera présentée ci-dessous.
pyi-archive_viewer
: Afficher la liste des fichiers dans le package exécutable.
pyi-bindepend
: Afficher la bibliothèque dynamique (fichier .so ou .dll) dont dépend le fichier exécutable
pyi-...
: etc. .
pyinstaller
:
pyinstaller [options] script [script ...] | specfile
Le plus simple Utilisation, exécutez la commande dans le même répertoire que myscript.py :
pyinstaller mycript.py
Vous verrez alors que deux nouveaux répertoires, build et dist, ont été ajouté, sous dist Le fichier est un fichier exécutable qui peut être publié. Pour la commande ci-dessus, vous trouverez un tas de fichiers dans le répertoire dist, y compris des fichiers de bibliothèque dynamique et des fichiers exécutables myscrip. Parfois, cela semble gênant. Vous devez tout empaqueter sous dist avant de publier. Si vous perdez une bibliothèque dynamique, elle ne fonctionnera pas. Heureusement, pyInstaller prend en charge le mode fichier unique.
pyinstaller -F mycript.pyVous constaterez qu'il n'y a qu'un seul fichier exécutable sous dist. Ce fichier unique peut être publié et peut s'exécuter sous un système similaire au système d'exploitation que vous utilisez. Bien sûr,
il existe différentes options, il existe des options générales, comme l'option -d pour le débogage, pour comprendre le processus d'exécution de pyInstaller, il existe également des options pour différentes plates-formes, pour des applications spécifiques ; utilisation, vous pouvez visiter le site officiel de PyInstaller WIKI.
Lors de l'exécution de la commande pyinstaller
, un fichier
. . Vous pouvez utiliser : pyInstaller
.spec
.spec
pyi-makespec options script [script ...]pour créer un fichier .spec. Pour les fichiers .spec modifiés manuellement, nous pouvons utiliser l'une des commandes suivantes : Introduction aux principes de PyInstaller
pyinstaller specfile pyi-build specfile
PyInstaller regroupe en fait l'analyseur Python et votre propre script dans un fichier exécutable, et le compile dans Le code machine réel est complètement différent, alors ne vous attendez pas à ce que son emballage dans un fichier exécutable améliore l'efficacité opérationnelle. Au contraire, cela peut réduire l'efficacité opérationnelle. L'avantage est que vous n'avez pas besoin d'installer Python et vos bibliothèques. le script dépend de la machine du coureur. Sous le système d'exploitation Linux, il utilise principalement les commandes
etbinutil
PyInstaller entre le script que vous avez spécifié, analyse d'abord les autres scripts dont dépend le script, puis recherche, copie, collecte tous les scripts associés, y compris l'analyseur Python, puis place ces fichiers dans un répertoire Téléchargez-le, ou packagez-le dans un fichier exécutable. ldd
objdump
Vous pouvez publier directement les fichiers dans l'intégralité du dossier de sortie, ou dans le fichier exécutable généré. Il vous suffit d'indiquer aux utilisateurs que votre application est autonome et ne nécessite pas l'installation d'autres packages ou d'une certaine version de Python avant de pouvoir être exécutée directement.
Il convient de noter que les fichiers exécutables packagés par PyInstaller ne peuvent être utilisés que dans le même environnement que le système de la machine de packaging. En d’autres termes, il n’est pas portable et doit être packagé pour cette plate-forme s’il doit fonctionner sur un système différent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!