PresentationerSlide 1/1

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 .app med rätt alternativ
  • hitta resultatet och felsöka vanliga problem

Grundidé

Från Python-fil till app

main.pyPyInstallermain.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.py

Om programmet inte fungerar som Python-fil blir paketering inte en lösning.

Steg 1

Gå till rätt mapp

cd ~/Desktop/minapp
ls

ls 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 pyinstaller

python3 -m pip kopplar installationen till den Python-version du använder.

Kontrollera installationen

Visa versionen

python3 -m PyInstaller --version

Terminal:

6.x.x

Steg 3

Rekommenderat Mac-bygge

python3 -m PyInstaller --windowed --onedir main.py

Alternativen

Vad betyder kommandot?

--windowedÖppnar GUI:t utan ett extra terminalfönster.
--onedirSamlar app och beroenden i en mapp.
main.pyFilen som startar programmet.

Resultatet

PyInstaller skapar

  • build/ – tillfälliga byggfiler
  • dist/ – den färdiga appen
  • main.spec – bygginställningar
dist/main.app

Eget namn

Skapa Filminfo.app

python3 -m PyInstaller --windowed --onedir --name Filminfo main.py

Resultat: dist/Filminfo.app

Egen ikon

Använd formatet .icns

python3 -m PyInstaller --windowed --onedir --name Filminfo --icon ikon.icns main.py

Ikonfilen måste finnas på den sökväg du anger.

Interaktiv kommandobyggare

Skapa rätt kommando

Kommando och resultat
Fyll i och skapa kommandot.

Starta appen

Öppna via Finder

  1. Öppna projektets dist-mapp.
  2. Dubbelklicka på appen.
  3. Om macOS varnar: högerklicka och välj Öppna.
  4. 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

  1. Kör python3 main.py igen.
  2. Läs felmeddelandet i terminalen.
  3. Kontrollera filer och sökvägar.
  4. 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.py

Fä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 --onedir som utgångspunkt.
  • Den färdiga appen finns i dist.
  • Felsök först programmet, sedan paketeringen.