Il s'agit d'un méta-paquet permettant de créer une version de Python pouvant être intégrée dans un projet macOS, iOS, tvOS ou watchOS.
Cette branche construit une version packagée de Python 3.13 . D'autres versions de Python sont disponibles en clonant d'autres branches du dépôt principal :
Il fonctionne en téléchargeant, en corrigeant et en créant un gros binaire de Python et des prérequis sélectionnés, et en les regroupant sous forme de frameworks pouvant être incorporés dans un projet XCode. Les modules binaires de la bibliothèque standard Python sont distribués sous forme de binaires pouvant être chargés dynamiquement au moment de l'exécution.
Le package macOS est un regroupement du binaire officiel macOS, modifié de manière à pouvoir être déplacé, avec les packages IDLE, Tkinter et Turtle supprimés et le correctif de conformité de l'App Store appliqué.
Les packages iOS, tvOS et watchOS compilés par ce projet utilisent le code officiel PEP 730 qui fait partie de Python 3.13 pour fournir la prise en charge iOS ; les correctifs concernés ont été rétroportés vers 3.9-3.12. Des correctifs supplémentaires ont été appliqués pour ajouter la prise en charge de tvOS et watchOS.
Les binaires prennent en charge x86_64 et arm64 pour macOS ; arm64 pour les appareils iOS et AppleTV ; et arm64_32 pour les appareils watchOS. Il prend également en charge les simulateurs de périphériques sur le matériel x86_64 et M1. Cela devrait permettre au code de s'exécuter sur :
La manière la plus simple d'utiliser ces packages consiste à créer un projet avec Briefcase. Briefcase téléchargera des versions précompilées de ces packages de support et les ajoutera à un projet Xcode (ou à une application stub pré-construite, dans le cas de macOS).
Des versions prédéfinies des frameworks peuvent être téléchargées à partir de la page des versions de Github et ajoutées à votre projet.
Alternativement, pour créer les frameworks vous-même, téléchargez/clonez ce référentiel, puis dans le répertoire racine, et exécutez :
make
(ou make all
) pour tout construire.make macOS
pour tout construire pour macOS.make iOS
pour tout construire pour iOS.make tvOS
pour tout construire pour tvOS.make watchOS
pour tout construire pour watchOS.Cela devrait :
Les packages de support résultants seront regroupés sous forme de fichier .tar.gz
dans le dossier dist
.
Chaque package de support contient :
VERSIONS
, un fichier texte décrivant les versions spécifiques du code utilisées pour créer le package de support ;platform-site
, un dossier qui contient des scripts de personnalisation de site qui peuvent être utilisés pour donner l'impression que votre installation Python locale est une installation sur l'appareil pour chacune des architectures cibles sous-jacentes prises en charge par la plateforme. Ceci est nécessaire car lorsque vous exécutez pip
vous serez sur une machine macOS avec une architecture spécifique ; si pip
essaie d'installer un package binaire, il installera une roue binaire macOS (qui ne fonctionnera pas sur iOS/tvOS/watchOS). Cependant, si vous ajoutez le dossier platform-site
à votre PYTHONPATH
lors de l'appel de pip, la personnalisation du site fera en sorte que votre installation Python renvoie des réponses platform
et sysconfig
cohérentes avec le comportement sur l'appareil, ce qui obligera pip
à installer des packages appropriés à la plate-forme.Python.xcframework
, une version multi-architecture de la bibliothèque d'exécution Python Sur iOS/tvOS/watchOS, le Python.xcframework
contient une tranche pour chaque ABI pris en charge (appareil et simulateur). Le dossier contenant la tranche peut également être utilisé comme PYTHONHOME
, car il contient un répertoire bin
, include
et lib
.
Le dossier bin
ne contient pas d'exécutables Python (car ils ne peuvent pas être invoqués). Cependant, il contient des alias shell pour les compilateurs nécessaires à la création de packages. Ceci est nécessaire car Xcode utilise l'alias xcrun
pour générer dynamiquement le nom des binaires, mais de nombreux outils C s'attendent à ce que CC
ne contienne pas d'espaces.
Pour des instructions détaillées sur l'utilisation du package de support dans votre propre projet, consultez le guide d'utilisation
Ce projet regroupe la bibliothèque standard Python, mais ne traite pas de la création de roues binaires. Les roues binaires pour macOS peuvent être obtenues auprès de PyPI. Mobile Forge est un projet qui fournit les outils nécessaires pour créer des roues binaires pour iOS (et potentiellement pour tvOS et watchOS, bien que cela n'ait pas été testé).
Les versions suivantes étaient prises en charge dans le passé, mais ne sont plus maintenues :