Je crée une application Python et je ne veux pas forcer mes clients à installer Python et des modules.
Alors, existe-t-il un moyen de compiler un script Python pour être un exécutable autonome?
python
executable
Jeff
la source
la source
Réponses:
Vous pouvez utiliser py2exe comme déjà répondu et utiliser cython pour convertir vos
.py
fichiers clés en fichiers.pyc
C compilés, comme.dll
dans Windows et.so
Linux, beaucoup plus difficiles à rétablir que les fichiers communs.pyo
et.pyc
(et aussi gagner en performances!)la source
Vous pouvez utiliser PyInstaller pour empaqueter des programmes Python en tant qu'exécutables autonomes. Il fonctionne sur Windows, Linux et Mac.
la source
Vous voudrez peut-être enquêter sur Nuitka . Il prend le code source python et le convertit en appels API C ++. Ensuite, il se compile en un binaire exécutable (ELF sur Linux). Il existe depuis quelques années et prend en charge une large gamme de versions Python.
Vous obtiendrez probablement également une amélioration des performances si vous l'utilisez. Conseillé.
la source
Je voudrais compiler des informations utiles sur la création de fichiers autonomes sur Windows à l'aide de Python 2.7.
J'ai utilisé py2exe et cela fonctionne, mais j'ai eu quelques problèmes.
Il a montré quelques problèmes pour créer des fichiers uniques dans Windows 64 bits: L' utilisation de bundle_files = 1 avec py2exe ne fonctionne pas ;
Il est nécessaire de créer un fichier setup.py pour que cela fonctionne. http://www.py2exe.org/index.cgi/Tutorial#Step2 ;
J'ai eu des problèmes avec les dépendances que vous devez résoudre en important des packages dans le fichier d'installation;
Je n'ai pas pu le faire fonctionner avec PyQt ..
Cette dernière raison m'a fait essayer PyInstaller http://www.pyinstaller.org/ .
À mon avis, c'est beaucoup mieux parce que:
Je suggère par exemple de créer un fichier .bat avec les lignes suivantes (pyinstaller.exe doit être dans le chemin Windows):
Vous pouvez créer un seul fichier, entre autres options ( https://pyinstaller.readthedocs.io/en/stable/usage.html#options ).
Je n'ai eu qu'un seul problème à l'aide de PyInstaller et du package de multitraitement qui a été résolu en utilisant cette recette: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing .
Donc, je pense que, au moins pour python 2.7, une option meilleure et plus simple est PyInstaller.
la source
--onefile
indicateur ne vous aidera pas à le rendre portable sur Windows, car l'exécutable veut toujours se lier à laapi-ms-win-crt-runtime-l1-1-0.dll
bibliothèque (ou / et autres) qui doit être installée via levcredist
package. Une dépendance est donc toujours là et doit être installée avant l'exécution.Oui, il est possible de compiler des scripts Python en exécutable autonome.
PyInstaller peut être utilisé pour convertir des programmes Python en exécutables autonomes, sous Windows , Linux , Mac OS X , FreeBSD , Solaris et AIX . C'est l'un des convertisseurs recommandés.
py2exe convertit les scripts Python en exécutables uniquement sur la plate-forme Windows.
Cython est un compilateur statique pour le langage de programmation Python et le langage de programmation Cython étendu.
la source
Et une troisième option est
cx_Freeze
, qui est multiplateforme.la source
cx_Freeze
versions sur pypi depuis fin 2017. Ce projet a-t-il été abandonné?vous aimerez peut-être py2exe . vous y trouverez également des infos pour le faire sur linux
la source
Utilisez py2exe .... utilisez les fichiers de configuration ci-dessous:
la source
J'aime pyinstaller - en particulier la variante "fenêtrée":
Il créera un seul fichier * .exe dans un dossier dist /.
la source
Je recommande également pyinstaller pour une meilleure compatibilité descendante comme python 2.3 - 2.7.
pour py2exe , vous devez avoir python 2.6
la source
Pour les scripts Python 3.2, le seul choix est Cxfreeze. Construisez-le à partir de sources, sinon cela ne fonctionnera pas.
Pour python 2.x, je suggère pyinstaller car il peut empaqueter un programme python dans un seul exécutable, contrairement à CxFreeze qui génère également des bibliothèques.
la source
py2exe fera le fichier exe que vous voulez mais vous devez avoir la même version de MSVCR90.dll sur la machine sur laquelle vous allez utiliser votre nouvel exe. Voir http://www.py2exe.org/index.cgi/Tutorial pour plus d'informations.
la source
Vous pouvez trouver la liste des utilitaires de distribution répertoriés sur https://wiki.python.org/moin/DistributionUtilities .
J'utilise bbfreeze et cela a très bien fonctionné (mais n'a pas encore le support de python 3).
la source
.so
fichiers, ou copiera les fichiers .egg directement et ils seront tous présents dans un seul répertoire (ou comme un seul fichier). Aucune installation n'est requise.Cela crée un fichier EXE autonome dans Windows REMARQUE IMPORTANTE: Le fichier exe sera généré dans un dossier nommé «dist»
vous pouvez installer pyinstaller en utilisant
pip install PyInstaller
la source
Pas exactement un emballage du code python, mais il y a maintenant aussi grincheux de google, qui transpile le code à Go. Il ne prend pas en charge l'API python C, il peut donc ne pas fonctionner pour tous les projets.
la source
En utilisant pyinstaller, j'ai trouvé une meilleure méthode en utilisant un raccourci vers le .exe plutôt qu'en créant
--onefile
. Quoi qu'il en soit, il y a probablement des fichiers de données autour et si vous exécutez une application basée sur un site, votre programme dépend également des fichiers html, js, css. Inutile de déplacer tous ces fichiers quelque part. Et si nous déplaçons le chemin de travail vers le haut.Faites un raccourci vers l'exe, déplacez-le en haut et définissez les chemins cible et de démarrage comme spécifié, pour avoir des chemins relatifs allant vers le dossier dist \:
Target: %windir%\system32\cmd.exe /c start dist\web_wrapper\web_wrapper.exe Start in: "%windir%\system32\cmd.exe /c start dist\web_wrapper\"
peut renommer le raccourci en n'importe quoi donc renommer en "GTFS-Manager"Maintenant quand je double -cliquez sur le raccourci, c'est comme si j'avais python-exécuté le fichier! J'ai trouvé cette approche meilleure que
--onefile
celle en tant que:Oh, n'oubliez pas de supprimer le dossier de construction après la construction, vous économiserez de la taille.
la source
Utilisez Cython pour convertir en c, compiler et lier avec gcc. Une autre pourrait être de rendre les fonctions de base en c (celles que vous voulez rendre difficiles à inverser), de les compiler et d'utiliser Python Boost pour importer le code compilé (en plus, vous obtenez une exécution de code beaucoup plus rapide). puis utilisez n'importe quel outil mentionné pour distribuer.
la source
On me dit que PyRun, https://www.egenix.com/products/python/PyRun/ , est également une option.
la source