Zoeken…


Syntaxis

  • pyinstaller [opties] script [script ...] | specfile

Opmerkingen

PyInstaller is een module die wordt gebruikt om python-apps in één pakket te bundelen, samen met alle afhankelijkheden. De gebruiker kan de pakket-app vervolgens uitvoeren zonder een python-interpreter of modules. Het bundelt correct vele grote pakketten zoals numpy, Django, OpenCv en andere.

Enkele belangrijke punten om te onthouden:

  • Pyinstaller ondersteunt Python 2.7 en Python 3.3+
  • Pyinstaller is getest tegen Windows, Linux en Mac OS X.
  • Het is GEEN cross-compiler. (Een Windows-app kan niet in Linux worden verpakt. U moet PyInstaller in Windows uitvoeren om een app voor Windows te bundelen)

Startpagina Officiële documenten

Installatie en instellingen

Pyinstaller is een normaal python-pakket. Het kan worden geïnstalleerd met behulp van pip:

pip install pyinstaller

Installatie in Windows
Voor Windows is pywin32 of pypiwin32 een vereiste. De laatste wordt automatisch geïnstalleerd wanneer pyinstaller wordt geïnstalleerd met behulp van pip.

Installatie in Mac OS X
PyInstaller werkt met de standaard Python 2.7 die wordt meegeleverd met de huidige Mac OS X. Als latere versies van Python worden gebruikt of als belangrijke pakketten zoals PyQT, Numpy, Matplotlib en dergelijke worden gebruikt, is het raadzaam om ze te installeren met behulp van hetzij MacPorts of Homebrew .

Installeren vanuit het archief
Als pip niet beschikbaar is, downloadt u het gecomprimeerde archief van PyPI .
Download het gecomprimeerde archief van de ontwikkelingstak van de PyInstaller Downloads- pagina om de ontwikkelingsversie te testen.

Vouw het archief uit en zoek het script setup.py . Voer python setup.py install met beheerdersrechten om PyInstaller te installeren of te upgraden.

Verifiëren van de installatie
Het commando pyinstaller zou op het systeempad voor alle platforms moeten bestaan na een succesvolle installatie.
Controleer het door pyinstaller --version in de opdrachtregel te typen. Hiermee wordt de huidige versie van pyinstaller afgedrukt.

Pyinstaller gebruiken

Navigeer in het eenvoudigste geval naar de map waarin uw bestand zich bevindt en typ:

pyinstaller myfile.py

Pyinstaller analyseert het bestand en maakt:

  • Een myfile.spec- bestand in dezelfde map als myfile.py
  • Een map te bouwen in dezelfde map als myfile.py
  • Een dist- map in dezelfde map als myfile.py
  • Log bestanden in de map te bouwen

De gebundelde app is te vinden in de map dist

opties
Er zijn verschillende opties die kunnen worden gebruikt met pyinstaller. Een volledige lijst met opties vindt u hier .

Eenmaal gebundeld kan uw app worden uitgevoerd door 'dist \ myfile \ myfile.exe' te openen.

Bundelen naar één map

Wanneer PyInstaller wordt gebruikt zonder opties om myscript.py te bundelen, is de standaarduitvoer een enkele map (met de naam myscript ) met een uitvoerbaar bestand met de naam myscript ( myscript.exe in Windows) en alle benodigde afhankelijkheden.
De app kan worden gedistribueerd door de map te comprimeren in een zipbestand.

Een mapmodus kan expliciet worden ingesteld met de optie -D of --onedir

pyinstaller myscript.py -D

voordelen:

Een van de grote voordelen van bundelen naar één map is dat het eenvoudiger is om problemen op te lossen. Als modules niet kunnen worden geïmporteerd, kan dit worden gecontroleerd door de map te inspecteren.
Een ander voordeel wordt gevoeld tijdens updates. Als er een paar wijzigingen in de code zijn, maar de gebruikte afhankelijkheden exact hetzelfde zijn, kunnen distributeurs alleen het uitvoerbare bestand verzenden (dat doorgaans kleiner is dan de hele map).

nadelen

Het enige nadeel van deze methode is dat de gebruikers moeten zoeken naar het uitvoerbare bestand uit een groot aantal bestanden.
Gebruikers kunnen ook andere bestanden verwijderen / wijzigen waardoor de app mogelijk niet correct werkt.

Bundelen naar een enkel bestand

pyinstaller myscript.py -F

De opties om een enkel bestand te genereren zijn -F of --onefile . Dit bundelt het programma in een enkel bestand myscript.exe .

Het uitvoerbare bestand voor één bestand is langzamer dan de bundel met één map. Ze zijn ook moeilijker te debuggen.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow