5. Använda Python på macOS¶
Detta dokument syftar till att ge en översikt över macOS-specifika beteenden som du bör känna till för att komma igång med Python på Mac-datorer. Python på en Mac som kör macOS är mycket likt Python på andra Unix-avledda plattformar, men det finns vissa skillnader i installationen och vissa funktioner.
Det finns olika sätt att hämta och installera Python för macOS. Förbyggda versioner av de senaste versionerna av Python finns tillgängliga från ett antal distributörer. En stor del av detta dokument beskriver användningen av de Pythons som tillhandahålls av CPython release team för nedladdning från webbplatsen python.org. Se Alternativa utdelningar för några andra alternativ.
5.1. Använda Python för macOS från python.org
¶
5.1.1. Steg för installation¶
För aktuella Python-utgåvor (andra än de med status security
) producerar release-teamet ett Python för macOS-installationspaket för varje ny utgåva. En lista över tillgängliga installationsprogram finns här. Vi rekommenderar att du använder den senaste versionen av Python som stöds, om möjligt. Aktuella installationsprogram tillhandahåller en universal2-binär version av Python som körs nativt på alla Mac-datorer (Apple Silicon och Intel) som stöds av ett brett utbud av macOS-versioner, för närvarande vanligtvis från minst macOS 10.15 Catalina och uppåt.
Den nedladdade filen är en standard macOS installationspaketfil (.pkg
). Information om filintegritet (kontrollsumma, storlek, sigstore-signatur, etc) för varje fil ingår på nedladdningssidan för utgåvan. Installationspaket och deras innehåll är signerade och notariserade med Python Software Foundation
Apple Developer ID-certifikat för att uppfylla macOS Gatekeeper-krav.
För en standardinstallation dubbelklickar du på den nedladdade installationspaketfilen. Detta bör starta standardappen macOS Installer och visa det första av flera steg i installationsfönstret.

Genom att klicka på knappen Fortsätt får du upp Läs mig för detta installationsprogram. Förutom annan viktig information dokumenterar Läs mig vilken Python-version som ska installeras och på vilka versioner av macOS den stöds. Du kan behöva bläddra igenom för att läsa hela filen. Som standard kommer denna Läs mig också att installeras i /Applications/Python 3.14/
och vara tillgänglig att läsa när som helst.

Om du klickar på Fortsätt visas licensen för Python och för annan programvara som ingår. Du måste då Godkänna licensvillkoren innan du går vidare till nästa steg. Denna licensfil kommer också att installeras och vara tillgänglig för att läsas senare.

Efter att licensvillkoren har accepterats visas i nästa steg Installationstyp. För de flesta användningsområden är standarduppsättningen av installationsåtgärder lämplig.

Genom att trycka på knappen Customize kan du välja att utelämna eller välja vissa paketkomponenter i installationsprogrammet. Klicka på varje paketnamn för att se en beskrivning av vad det installerar. För att även installera stöd för den valfria funktionen free-threaded, se Installera fritt trådade binärfiler.

I båda fallen kommer installationsprocessen att påbörjas genom att du klickar på Install och ber om tillstånd att installera ny programvara. Ett macOS-användarnamn med Administrator
-behörighet behövs eftersom den installerade Python kommer att vara tillgänglig för alla användare av Mac.
När installationen är klar visas fönstret Summary (Sammanfattning).

Dubbelklicka på ikonen eller filen Install Certificates.command i fönstret /Applications/Python 3.14/
för att slutföra installationen.

Detta öppnar ett tillfälligt Terminal-skalfönster som använder den nya Python för att hämta och installera SSL-rotcertifikat för dess användning.

Om Successfully installed certifi
och update complete
visas i terminalfönstret är installationen slutförd. Stäng det här terminalfönstret och installationsfönstret.
En standardinstallation kommer att innehålla:
En
Python 3.14
-mapp i dinApplications
-mapp. Här hittar du IDLE, utvecklingsmiljön som är en standarddel av officiella Python-distributioner; och Python Launcher, som hanterar dubbelklick på Python-skript från macOS Finder.Ett ramverk
/Library/Frameworks/Python.framework
, som innehåller Python-körbarheten och biblioteken. Installationsprogrammet lägger till denna plats i din shell-sökväg. Om du vill avinstallera Python kan du ta bort dessa tre saker. Symlänkar till den körbara Python-filen placeras i/usr/local/bin/
.
Anteckning
Nya versioner av macOS innehåller ett python3-kommando i /usr/bin/python3
som länkar till en vanligtvis äldre och ofullständig version av Python som tillhandahålls av och för användning av Apples utvecklingsverktyg, Xcode eller Command Line Tools for Xcode. Du bör aldrig ändra eller försöka ta bort den här installationen, eftersom den är Apple-kontrollerad och används av programvara som tillhandahålls av Apple eller tredje part. Om du väljer att installera en nyare Python-version från python.org
, kommer du att ha två olika men funktionella Python-installationer på din dator som kan samexistera. Standardinstallationsalternativen bör säkerställa att dess python3 används i stället för systemets python3.
5.1.2. Så här kör du ett Python-skript¶
Det finns två sätt att anropa Python-tolken. Om du är bekant med att använda ett Unix-skal i ett terminalfönster kan du anropa python3.14
eller python3
eventuellt följt av ett eller flera kommandoradsalternativ (beskrivs i Kommandorad och miljö). Python-handledningen har också ett användbart avsnitt om använda Python interaktivt från ett skal.
Du kan också anropa tolken via en integrerad utvecklingsmiljö. IDLE — Python-redigerare och skal är en grundläggande editor och tolkmiljö som ingår i standarddistributionen av Python. IDLE innehåller en hjälpmeny som ger dig tillgång till Python-dokumentation. Om du är helt nybörjare i Python kan du läsa introduktionen i detta dokument.
Det finns många andra editorer och IDE:er tillgängliga, se Redigeringsverktyg och IDE:er för mer information.
Om du vill köra en Python-skriptfil från terminalfönstret kan du anropa tolken med namnet på skriptfilen:
python3.14
myscript.py
Om du vill köra ditt skript från Finder kan du antingen
Dra den till Python Launcher.
Välj Python Launcher som standardprogram för att öppna ditt skript (eller något annat
.py
-skript) genom Finder Info-fönstret och dubbelklicka på det. Python Launcher har olika inställningar för att styra hur ditt skript startas. Genom att dra alternativ kan du ändra dessa för en enda uppstart, eller använda menynPreferences
för att ändra saker globalt.
Tänk på att om du kör skriptet direkt från macOS Finder kan det ge andra resultat än om du kör det från ett terminalfönster eftersom skriptet inte körs i den vanliga skalmiljön, inklusive eventuella inställningar av miljövariabler i skalprofiler. Och, som med alla andra skript eller program, var säker på vad du är på väg att köra.
5.2. Alternativa utdelningar¶
Förutom standardinstallationsprogrammet python.org
för macOS finns det tredjepartsdistributioner för macOS som kan innehålla ytterligare funktioner. Några populära distributioner och deras nyckelfunktioner:
- ActivePython
Installationsprogram med kompatibilitet för flera plattformar, dokumentation
- Anaconda
Populära vetenskapliga moduler (t.ex. numpy, scipy och pandas) och pakethanteraren
conda
.- Homebrew
Pakethanterare för macOS som innehåller flera versioner av Python och många Python-baserade tredjepartspaket (t.ex. numpy, scipy och pandas).
- MacPorts
En annan pakethanterare för macOS som innehåller flera versioner av Python och många Python-baserade paket från tredje part. Kan innehålla förbyggda versioner av Python och många paket för äldre versioner av macOS.
Observera att distributioner kanske inte innehåller de senaste versionerna av Python eller andra bibliotek och att de inte underhålls eller stöds av Pythons kärnteam.
5.3. Installera ytterligare Python-paket¶
Mer information finns i Python Packaging User Guide.
5.4. GUI-programmering¶
Det finns flera alternativ för att bygga GUI-applikationer på Mac med Python.
Pythons standardverktyg för grafiska gränssnitt är tkinter
, baserat på Tk-verktygslådan för plattformsoberoende (https://www.tcl.tk). En MacOS-anpassad version av Tk ingår i installationsprogrammet.
PyObjC är en Python-bindning till Apples Objective-C/Cocoa-ramverk. Information om PyObjC finns på pyobjc.
Ett antal alternativa verktygslådor för macOS GUI finns tillgängliga, t.ex:
PySide: Officiella Python-bindningar till Qt GUI toolkit.
PyQt: Alternativa Python-bindningar till Qt.
Kivy: En plattformsoberoende GUI-verktygslåda som stöder stationära och mobila plattformar.
Toga: En del av BeeWare Project; stöder appar för skrivbord, mobil, webb och konsol.
wxPython: En plattformsoberoende verktygslåda som stöder operativsystem för skrivbord.
5.5. Avancerade ämnen¶
5.5.1. Installera fritt trådade binärfiler¶
Tillagd i version 3.13.
Installationspaketet python.org
Python för macOS kan valfritt installera en ytterligare version av Python 3.14 som stöder PEP 703, funktionen för fri trådning (körs med global interpreter lock inaktiverat). Kontrollera releasesidan på python.org
för eventuell uppdaterad information.
Det fritt trådade läget fungerar och fortsätter att förbättras, men det finns en del ytterligare overhead i enkeltrådade arbetsbelastningar jämfört med den vanliga byggningen. Dessutom kan tredjepartspaket, i synnerhet sådana med en extension module, inte vara redo att användas i en fritt trådad byggnation och kommer att återaktivera GIL. Därför installeras inte stödet för free-threading som standard. Det är paketerat som ett separat installationsalternativ, tillgängligt genom att klicka på knappen Customize på steget Installationstyp i installationsprogrammet enligt beskrivningen ovan.

Om rutan bredvid paketnamnet Free-threaded Python är markerad kommer en separat PythonT.framework
också att installeras vid sidan av den vanliga Python.framework
i /Library/Frameworks
. Den här konfigurationen gör att en Python-version med fri tråd kan samexistera på ditt system med en traditionell Python-version (endast GIL) med minimal risk under installation och testning. Denna installationslayout kan komma att ändras i framtida utgåvor.
Kända försiktighetsåtgärder och begränsningar:
Paketet UNIX command-line tools, som är valt som standard, kommer att installera länkar i
/usr/local/bin
förpython3.14t
, den frittrådade tolken, ochpython3.14t-config
, ett konfigurationsverktyg som kan vara användbart för paketbyggare. Eftersom/usr/local/bin
vanligtvis ingår i skaletsPATH
, bör det i de flesta fall inte behövas några ändringar i miljövariablernaPATH
för att användapython3.14t
.I den här versionen har paketet Shell profile updater och kommandot
Update Shell Profile.command
i/Applications/Python 3.14/
inte stöd för paketet free-threaded.Free-threaded build och traditional build har separata sökvägar och separata
site-packages
-kataloger, så om du behöver ett paket som finns tillgängligt i båda builds kan det som standard behöva installeras i båda. Free-threaded-paketet installerar en separat instans av pip för användning medpython3.14t
.Installera ett paket med hjälp av pip utan venv:
python3.14t -m pip install <package_name>
När man arbetar med flera Python-miljöer är det oftast säkrast och enklast att skapa och använda virtuella miljöer. På så sätt kan man undvika eventuella kommandonamnskonflikter och förvirring om vilken Python som används:
python\ |version|\ t -m venv <venv_namn>
sedan activate.
För att köra en fritt trådad version av IDLE:
python3.14t -m idlelib
Tolkarna i båda versionerna svarar på samma PYTHON-miljövariabler vilket kan ge oväntade resultat, till exempel om du har
PYTHONPATH
inställd i en skalprofil. Om det behövs finns det kommandoradsalternativ som-E
för att ignorera dessa miljövariabler.Den fritt trådade versionen länkar till de delade tredjepartsbiblioteken, t.ex.
OpenSSL
ochTk
, som installeras i det traditionella ramverket. Detta innebär att båda versionerna också delar en uppsättning förtroendecertifikat som installeras av skriptet Install Certificates.command, vilket innebär att det bara behöver köras en gång.Om du inte kan förlita dig på att länken i
/usr/local/bin
pekar påpython.org
free-threadedpython3.14t
(till exempel om du vill installera din egen version där eller om någon annan distribution gör det), kan du uttryckligen ställa in dinPATH
-miljövariabel i skalet så att den inkluderarPythonT
-ramverketsbin
-katalog:export PATH="/Library/Frameworks/PythonT.framework/Versions/3.14/bin":"$PATH"
Den traditionella ramverksinstallationen gör som standard något liknande, med undantag för
Python.framework
. Tänk på att det kan leda till förvirring att ha båda Framework-katalogernabin
iPATH
om det finns duplicerade namn sompython3.14
i båda; vilken som faktiskt används beror på ordningen de visas iPATH
. Kommandonawhich python3.x
ellerwhich python3.xt
kan visa vilken sökväg som används. Att använda virtuella miljöer kan hjälpa till att undvika sådana tvetydigheter. Ett annat alternativ kan vara att skapa en shell alias till önskad tolk, t.ex:alias py\ |version|\ ="/Bibliotek/Frameworks/Python.framework/Versions/\ |version|\ /bin/python\ |version|\ " alias py\ |version|\ t="/Bibliotek/Framställningsverk/PythonT.framework/Versioner/\ |version|\ /bin/python\ |version|\ t"
5.5.2. Installera med hjälp av kommandoraden¶
Om du vill använda automatisering för att installera installationspaketet python.org
(i stället för att använda den välbekanta macOS Installer GUI-appen), kan du med macOS kommandoradsverktyg installer också välja alternativ som inte är standard. Om du inte är bekant med installer kan det vara lite kryptiskt (se man installer för mer information). Som ett exempel visar följande skalsnutt ett sätt att göra det på, genom att använda 3.14.0b2
-versionen och välja alternativet free-threaded interpreter:
RELEASE="python-3.140b2-macos11.pkg" # download installer pkg curl -O https://www.python.org/ftp/python/3.14.0/${RELEASE} # create installer choicechanges to customize the install: # enable the PythonTFramework-3.14 package # while accepting the other defaults (install all other packages) cat > ./choicechanges.plist <<EOF <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <array> <dict> <key>attributeSetting</key> <integer>1</integer> <key>choiceAttribute</key> <string>selected</string> <key>choiceIdentifier</key> <string>org.python.Python.PythonTFramework-3.14</string> </dict> </array> </plist> EOF sudo installer -pkg ./${RELEASE} -applyChoiceChangesXML ./choicechanges.plist -target /
Du kan sedan testa att båda installationsprogrammen nu är tillgängliga med något liknande:
$ # test that the free-threaded interpreter was installed if the Unix Command Tools package was enabled $ /usr/local/bin/python3.14t -VV Python 3.14.0b2 free-threading build (v3.14.0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)] $ # and the traditional interpreter $ /usr/local/bin/python3.14 -VV Python 3.14.0b2 (v3.14.0b2:3a83b172af, Jun 5 2024, 12:50:24) [Clang 15.0.0 (clang-1500.3.9.4)] $ # test that they are also available without the prefix if /usr/local/bin is on $PATH $ python3.14t -VV Python 3.14.0b2 free-threading build (v3.14.0b2:3a83b172af, Jun 5 2024, 12:57:31) [Clang 15.0.0 (clang-1500.3.9.4)] $ python3.14 -VV Python 3.14.0b2 (v3.14.0b2:3a83b172af, Jun 5 2024, 12:50:24) [Clang 15.0.0 (clang-1500.3.9.4)]
Anteckning
Nuvarande installationsprogram för python.org
installerar bara till fasta platser som /Library/Frameworks/
, /Applications
och /usr/local/bin
. Du kan inte använda alternativet installer -domain
för att installera på andra platser.
5.5.3. Distribuera Python-applikationer¶
Det finns en rad olika verktyg för att konvertera din Python-kod till en fristående distribuerbar applikation:
py2app: Stöder skapandet av macOS
.app
-bundles från ett Python-projekt.Briefcase: En del av BeeWare Project; ett plattformsoberoende paketeringsverktyg som stöder skapandet av
.app
-buntar på macOS, samt hantering av signering och notarisering.PyInstaller: Ett plattformsoberoende paketeringsverktyg som skapar en enda fil eller mapp som en distribuerbar artefakt.
5.5.4. App Store-överensstämmelse¶
Appar som skickas in för distribution via macOS App Store måste passera Apples appgranskningsprocess. Denna process innehåller en uppsättning automatiserade valideringsregler som inspekterar det inlämnade programpaketet för problematisk kod.
Pythons standardbibliotek innehåller en del kod som är känd för att bryta mot dessa automatiserade regler. Även om dessa överträdelser verkar vara falskt positiva kan Apples granskningsregler inte ifrågasättas. Därför är det nödvändigt att modifiera Python-standardbiblioteket för att en app ska klara App Store-granskningen.
Pythons källträd innehåller en patchfil som tar bort all kod som är känd för att orsaka problem med App Stores granskningsprocess. Denna patch tillämpas automatiskt när CPython konfigureras med alternativet --with-app-store-compliance
.
Denna patch krävs normalt inte för att använda CPython på en Mac, och inte heller om du distribuerar en app utanför macOS App Store. Den krävs endast om du använder macOS App Store som distributionskanal.
5.6. Övriga resurser¶
Hjälpsidan python.org har länkar till många användbara resurser. Mailinglistan Pythonmac-SIG är en annan supportresurs speciellt för Python-användare och -utvecklare på Mac.