Kapitel 17
Skapa en Mac-app
Paketera ett fungerande Tkinter-program med PyInstaller.
Mål
Efter kapitlet ska du kunna...
- förbereda ett Python-program för paketering
- installera och kontrollera PyInstaller
- bygga en
.appmed rätt alternativ - hitta resultatet och felsöka vanliga problem
Grundidé
Från Python-fil till app
Python-tolk och beroenden paketeras så att mottagaren oftast inte behöver installera Python.
Viktig ordning
Bygg först när koden fungerar
python3 main.pyOm programmet inte fungerar som Python-fil blir paketering inte en lösning.
Steg 1
Gå till rätt mapp
cd ~/Desktop/minapp
lsls ska visa exempelvis main.py.
Sökvägar med mellanslag
Använd citationstecken
cd "$HOME/Desktop/Mina projekt/minapp"Terminalen måste förstå att hela sökvägen hör ihop.
Steg 2
Installera PyInstaller
python3 -m pip install pyinstallerpython3 -m pip kopplar installationen till den Python-version du använder.
Kontrollera installationen
Visa versionen
python3 -m PyInstaller --versionTerminal:
6.x.xSteg 3
Rekommenderat Mac-bygge
python3 -m PyInstaller --windowed --onedir main.pyAlternativen
Vad betyder kommandot?
--windowed | Öppnar GUI:t utan ett extra terminalfönster. |
|---|---|
--onedir | Samlar app och beroenden i en mapp. |
main.py | Filen som startar programmet. |
Resultatet
PyInstaller skapar
build/– tillfälliga byggfilerdist/– den färdiga appenmain.spec– bygginställningar
dist/main.appEget namn
Skapa Filminfo.app
python3 -m PyInstaller --windowed --onedir --name Filminfo main.pyResultat: dist/Filminfo.app
Egen ikon
Använd formatet .icns
python3 -m PyInstaller --windowed --onedir --name Filminfo --icon ikon.icns main.pyIkonfilen måste finnas på den sökväg du anger.
Interaktiv kommandobyggare
Skapa rätt kommando
Fyll i och skapa kommandot.
Starta appen
Öppna via Finder
- Öppna projektets
dist-mapp. - Dubbelklicka på appen.
- Om macOS varnar: högerklicka och välj Öppna.
- Bekräfta Öppna igen.
Bygg för rätt system
Mac-appen byggs på Mac
PyInstaller skapar paket för operativsystemet där bygget körs.
En Mac-app bör därför byggas och testas på macOS.
Undvik som första val
Onefile på Mac
pyinstaller --onefile --windowed main.py--onefile kan ge långsammare start och fler problem med resurser. Börja med --onedir.
Vanliga problem
När appen inte startar
- PyInstaller installerades i en annan Python-miljö.
- bilder eller datafiler saknas.
- programmet använder en sökväg som bara fungerar på din dator.
- Python-filen fungerade inte före bygget.
Felsökningsordning
Gå tillbaka till källan
- Kör
python3 main.pyigen. - Läs felmeddelandet i terminalen.
- Kontrollera filer och sökvägar.
- Rätta felet och bygg om.
Extra resurser kan behöva anges i bygginställningarna eller spec-filen.
Standardrecept
Tre kommandon
python3 -m pip install pyinstaller
cd sökväg/till/mappen
python3 -m PyInstaller --windowed --onedir main.pyFärdig app: dist/main.app
Sammanfattning
Kom ihåg
- Testa Python-filen före paketering.
- Kör kommandot i rätt projektmapp.
- Använd
--windowed --onedirsom utgångspunkt. - Den färdiga appen finns i
dist. - Felsök först programmet, sedan paketeringen.