Dies ist ein Metapaket zum Erstellen einer Python-Version, die in ein macOS-, iOS-, tvOS- oder watchOS-Projekt eingebettet werden kann.
Dieser Zweig erstellt eine gepackte Version von Python 3.13 . Andere Python-Versionen sind durch Klonen anderer Zweige des Haupt-Repositorys verfügbar:
Es funktioniert durch das Herunterladen, Patchen und Erstellen einer umfangreichen Binärdatei von Python und ausgewählten Voraussetzungen und das Verpacken dieser als Frameworks, die in ein XCode-Projekt integriert werden können. Die Binärmodule in der Python-Standardbibliothek werden als Binärdateien verteilt, die zur Laufzeit dynamisch geladen werden können.
Das macOS-Paket ist eine Neubündelung der offiziellen macOS-Binärdatei, die so geändert wurde, dass sie verschiebbar ist, wobei die Pakete IDLE, Tkinter und Turtle entfernt und der App Store-Compliance-Patch angewendet wurden.
Die von diesem Projekt kompilierten iOS-, tvOS- und watchOS-Pakete verwenden den offiziellen PEP 730-Code, der Teil von Python 3.13 ist, um iOS-Unterstützung bereitzustellen; Die relevanten Patches wurden auf 3.9-3.12 zurückportiert. Es wurden zusätzliche Patches angewendet, um tvOS- und watchOS-Unterstützung hinzuzufügen.
Die Binärdateien unterstützen x86_64 und arm64 für macOS; arm64 für iOS- und AppleTV-Geräte; und arm64_32 für watchOS-Geräte. Es unterstützt auch Gerätesimulatoren sowohl auf x86_64- als auch auf M1-Hardware. Dies sollte die Ausführung des Codes ermöglichen auf:
Der einfachste Weg, diese Pakete zu verwenden, besteht darin, ein Projekt mit Briefcase zu erstellen. Briefcase lädt vorkompilierte Versionen dieser Supportpakete herunter und fügt sie einem Xcode-Projekt (oder einer vorgefertigten Stub-Anwendung im Fall von macOS) hinzu.
Vorgefertigte Versionen der Frameworks können von der Github-Release-Seite heruntergeladen und Ihrem Projekt hinzugefügt werden.
Alternativ können Sie, um die Frameworks selbst zu erstellen, dieses Repository herunterladen/klonen, es dann im Stammverzeichnis speichern und Folgendes ausführen:
make
(oder make all
), um alles zu erstellen.make macOS
um alles für macOS zu erstellen.make iOS
um alles für iOS zu erstellen.make tvOS
um alles für tvOS zu erstellen.make watchOS
um alles für watchOS zu erstellen.Dies sollte:
Die resultierenden Supportpakete werden als .tar.gz
Datei im dist
-Ordner gepackt.
Jedes Supportpaket enthält:
VERSIONS
, eine Textdatei, die die spezifischen Codeversionen beschreibt, die zum Erstellen des Supportpakets verwendet wurden;platform-site
, ein Ordner, der Site-Anpassungsskripte enthält, die verwendet werden können, um Ihre lokale Python-Installation so aussehen zu lassen, als wäre es eine Installation auf dem Gerät für jede der zugrunde liegenden Zielarchitekturen, die von der Plattform unterstützt werden. Dies ist erforderlich, da Sie sich beim Ausführen von pip
auf einem macOS-Computer mit einer bestimmten Architektur befinden. Wenn pip
versucht, ein Binärpaket zu installieren, wird ein macOS-Binärrad installiert (das unter iOS/tvOS/watchOS nicht funktioniert). Wenn Sie jedoch den Ordner platform-site
zu Ihrem PYTHONPATH
hinzufügen, wenn Sie pip aufrufen, sorgt die Site-Anpassung dafür, dass Ihre Python-Installation platform
und sysconfig
Antworten mit dem Verhalten auf dem Gerät in Einklang bringt, was dazu führt, dass pip
plattformgerechte Pakete installiert.Python.xcframework
, ein Multi-Architektur-Build der Python-Laufzeitbibliothek Unter iOS/tvOS/watchOS enthält das Python.xcframework
einen Slice für jedes unterstützte ABI (Gerät und Simulator). Der Ordner, der das Slice enthält, kann auch als PYTHONHOME
verwendet werden, da er ein bin
, include
und lib
-Verzeichnis enthält.
Der Ordner bin
enthält keine ausführbaren Python-Dateien (da diese nicht aufgerufen werden können). Es enthält jedoch Shell-Aliase für die Compiler, die zum Erstellen von Paketen benötigt werden. Dies ist erforderlich, da Xcode den xcrun
-Alias verwendet, um den Namen von Binärdateien dynamisch zu generieren, viele C-Tools jedoch erwarten, dass CC
keine Leerzeichen enthält.
Eine detaillierte Anleitung zur Nutzung des Support-Pakets in Ihrem eigenen Projekt finden Sie im Nutzungsleitfaden
Dieses Projekt packt die Python-Standardbibliothek, befasst sich jedoch nicht mit dem Erstellen binärer Räder. Binärräder für macOS können von PyPI bezogen werden. Mobile Forge ist ein Projekt, das die Tools zum Erstellen von Binärrädern für iOS (und möglicherweise für tvOS und watchOS, obwohl dies noch nicht getestet wurde) bereitstellt.
Die folgenden Versionen wurden in der Vergangenheit unterstützt, werden aber nicht mehr gepflegt: