Comment packager un script Python dans un fichier exécutable ? (détaillé)

不言
Libérer: 2018-09-27 15:30:51
original
5920 Les gens l'ont consulté

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.

Geler votre code

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.

Installer 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
Copier après la connexion

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
Copier après la connexion

Une fois l'installation terminée, vérifiez si l'installation a réussi :

pyinstaller --version
Copier après la connexion

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

Utilisez la syntaxe de PyInstaller

pyinstaller :

pyinstaller [options] script [script ...] | specfile
Copier après la connexion

Le plus simple Utilisation, exécutez la commande dans le même répertoire que myscript.py :

pyinstaller mycript.py
Copier après la connexion

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.py
Copier après la connexion
Vous 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

sera généré dans le même répertoire que le script. Ce fichier indiquera à pyinstaller comment traiter tous vos scripts et inclura les options de commande. En général, nous n'avons pas besoin de prêter attention à ce fichier. Si nous devons empaqueter des fichiers de données ou ajouter des options d'exécution Python au binaire empaqueté... pour certaines options d'empaquetage avancées, nous devons modifier manuellement le fichier

. . Vous pouvez utiliser : pyInstaller.spec.spec

pyi-makespec options script [script ...]
Copier après la connexion
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
Copier après la connexion

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

et

du package d'outils

.

binutilPyInstaller 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. lddobjdumpVous 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!