Am'm a construi o aplicație Python și don't vreau pentru a forța clienții mei pentru a instala Python și module. De asemenea, vreau să-mi fac cerere closed-source.
Deci, există o modalitate de a compila script Python pentru executabile de sine stătătoare?
Puteți utiliza PyInstaller pentru pachetul Python programe executabile de sine stătătoare. Aceasta funcționează pe Windows, Linux, și Mac.
PyInstaller Quickstart
Instala PyInstaller de la PyPI:
pip instala pyinstaller
Du-te la programul tău e director și rulați:
pyinstaller yourprogram.py
Acest lucru va genera pachet într-un subdirector numit
dist
.Pentru o prezentare detaliată, a se vedea manual.
Puteți utiliza py2exe ca răspuns deja și de a folosi cython pentru a converti cheie .py
fișiere într .pyc
, C compilat fișiere, cum ar fi .dll în Windows și.deci, în linux, mult mai greu să revină decât comun
.pyo "și".pyc` fișiere (și, de asemenea, câștiga în performanță!)
S-ar putea dori pentru a investiga Nuitka. Este nevoie de python codul sursă și o transformă în C++ apeluri API. Apoi se compilează într-un executabil binar (ELF pe Linux). Acesta a fost în jur de cativa ani acum, și suportă o gamă largă de Python versiuni.
Probabil, veți obține, de asemenea, o îmbunătățire a performanței, dacă îl folosiți. Recomandat.
Aș dori să alcătuiască niște informații utile despre crearea independentă de fișiere în windows folosind Python 2.7.
Eu am folosit py2exe și funcționează, dar am avut unele probleme.
S-a demonstrat de unele probleme pentru crearea de fișiere, în Windows pe 64 de biți: https://stackoverflow.com/questions/2909240/using-bundle-files-1-with-py2exe-is-not-working;
Este necesar de a crea un setup.py fișier pentru a funcționa. http://www.py2exe.org/index.cgi/Tutorial#Step2;
Am avut probleme cu dependențe care trebuie să le rezolve prin importul de pachete în fișierul de configurare;
Eu nu am fost capabil să-l facă să lucreze împreună cu PyQt..
Acest ultim motiv m-a făcut să încercați PyInstaller http://www.pyinstaller.org/ .
În opinia mea, este mult mai bine pentru că:
Sugerez crearea unui .fișier bat cu următoarele linii de exemplu (pyinstaller.exe trebuie să fie în Windows Cale):
pyinstaller.exe --onefile MyCode.py
Puteți crea un singur fișier, printre alte opțiuni (https://pyinstaller.readthedocs.io/en/stable/usage.html#options).
Am avut o singură problemă cu ajutorul PyInstaller și multiprocesare pachet care a fost rezolvată prin utilizarea această rețetă: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Multiprocessing .
Deci, cred că, cel puțin pentru python 2.7, o mai bună și mai simplă opțiune este PyInstaller.
Da, este posibil să alcătuiască script Python în executabil de sine stătător.
PyInstaller poate fi folosit pentru a converti programe în Python executabile stand-alone, sub Windows, Linux, Mac OS X, X, Solaris și AIX. Este una dintre cele mai recomandate convertoare.
py2exe convertește Python script-uri în doar executabil în platforma Windows.
Cython este un statice compilator pentru limbajul de programare Python și extins Cython limbaj de programare.
Utilizarea py2exe.... folosesc de mai jos înființat fișiere:
from distutils.core import setup
import py2exe
from distutils.filelist import findall
import matplotlib
setup(
console=['PlotMemInfo.py'],
options={
'py2exe': {
'packages' : ['matplotlib'],
'dll_excludes': ['libgdk-win32-2.0-0.dll',
'libgobject-2.0-0.dll',
'libgdk_pixbuf-2.0-0.dll']
}
},
data_files = matplotlib.get_py2exe_datafiles()
)
Pentru Python 3.2 scripturi singura alegere este Cxfreeze. A construi o de la surse, altfel nu o't de lucru.
Pentru python 2.x sugerez pyinstaller ca se poate ambala un program in python într-un singur executabil, spre deosebire de CxFreeze care emite, de asemenea, biblioteci.
Utilizarea Cython pentru a converti la c, compilarea și link-ul cu gcc. Altul ar putea fi, a face funcțiile de bază în c (cele pe care doriți pentru a face greu pentru a inversa), compila și de a folosi python impuls la import codul compilat ( plus veți obține o mult mai repede codul de executare). apoi, utilizați orice instrument menționat de a distribui.
Folosind pyinstaller, am găsit o metodă mai bună utilizând comenzi rapide de la .exe, mai degrabă decât a face --onefile
. Oricum acolo's, probabil, unele fișiere de date în jurul valorii de și dacă te're rulează un site pe bază de aplicație, atunci programul tău depinde de html, js, css fișiere prea. Nici un punct în mișcare toate aceste fișiere undeva.. in schimb daca ne-am muta de lucru calea sus.
Faci un shortcut la exe, mutați-l la partea de sus și a stabilit obiectivul și începe-în trasee specificate, pentru a avea căi relative de gând să dist\folder:
Țintă: %windir%\system32\cmd.exe /c începe dist\web_wrapper\web_wrapper.exe Începe în: "%windir%\system32\cmd.exe /c începe dist\web_wrapper\"
Poate redenumiți comanda rapidă pentru ceva atât de redenumirea a "GTFS-Manager"
Acum cand dau dublu-clic pe comanda rapidă, l's ca daca am python-a fugit de la fișier! Am găsit această abordare mai bună decât --onefile
o fi:
Oh, amintiți-vă pentru a șterge de pe folderul construi după clădire, va salva pe dimensiune.