Este es un metapaquete para crear una versión de Python que se puede integrar en un proyecto de macOS, iOS, tvOS o watchOS.
Esta rama crea una versión empaquetada de Python 3.13 . Otras versiones de Python están disponibles clonando otras ramas del repositorio principal:
Funciona descargando, parcheando y construyendo un binario grueso de Python y requisitos previos seleccionados, y empaquetándolos como marcos que pueden incorporarse a un proyecto XCode. Los módulos binarios de la biblioteca estándar de Python se distribuyen como binarios que se pueden cargar dinámicamente en tiempo de ejecución.
El paquete macOS es un paquete nuevo del binario oficial de macOS, modificado para que sea reubicable, con los paquetes IDLE, Tkinter y Turtle eliminados, y aplicado el parche de cumplimiento de la App Store.
Los paquetes de iOS, tvOS y watchOS compilados por este proyecto utilizan el código oficial PEP 730 que forma parte de Python 3.13 para brindar soporte para iOS; los parches relevantes han sido respaldados a 3.9-3.12. Se han aplicado parches adicionales para agregar compatibilidad con tvOS y watchOS.
Los binarios admiten x86_64 y arm64 para macOS; arm64 para dispositivos iOS y AppleTV; y arm64_32 para dispositivos watchOS. También admite simuladores de dispositivos en hardware x86_64 y M1. Esto debería permitir que el código se ejecute en:
La forma más sencilla de utilizar estos paquetes es creando un proyecto con Briefcase. Briefcase descargará versiones precompiladas de estos paquetes de soporte y las agregará a un proyecto Xcode (o a una aplicación stub precompilada, en el caso de macOS).
Las versiones prediseñadas de los marcos se pueden descargar desde la página de lanzamientos de Github y agregarlas a su proyecto.
Alternativamente, para construir los frameworks por tu cuenta, descarga/clona este repositorio, luego en el directorio raíz y ejecuta:
make
(o make all
) para construir todo.make macOS
para compilar todo para macOS.make iOS
para compilar todo para iOS.make tvOS
para compilar todo para tvOS.make watchOS
para compilar todo para watchOS.Esto debería:
Los paquetes de soporte resultantes se empaquetarán como un archivo .tar.gz
en la carpeta dist
.
Cada paquete de soporte contiene:
VERSIONS
, un archivo de texto que describe las versiones específicas del código utilizado para crear el paquete de soporte;platform-site
, una carpeta que contiene scripts de personalización del sitio que se pueden usar para hacer que su instalación local de Python parezca una instalación en el dispositivo para cada una de las arquitecturas de destino subyacentes admitidas por la plataforma. Esto es necesario porque cuando ejecutas pip
estarás en una máquina macOS con una arquitectura específica; Si pip
intenta instalar un paquete binario, instalará una rueda binaria de macOS (que no funcionará en iOS/tvOS/watchOS). Sin embargo, si agrega la carpeta platform-site
a su PYTHONPATH
al invocar pip, la personalización del sitio hará que su instalación de Python devuelva respuestas platform
y sysconfig
consistentes con el comportamiento en el dispositivo, lo que hará que pip
instale paquetes apropiados para la plataforma.Python.xcframework
, una compilación de múltiples arquitecturas de la biblioteca de tiempo de ejecución de Python En iOS/tvOS/watchOS, el Python.xcframework
contiene un segmento para cada ABI (dispositivo y simulador) compatible. La carpeta que contiene el segmento también se puede usar como PYTHONHOME
, ya que contiene un directorio bin
, include
y lib
.
La carpeta bin
no contiene ejecutables de Python (ya que no se pueden invocar). Sin embargo, contiene alias de shell para los compiladores necesarios para crear paquetes. Esto es necesario porque Xcode usa el alias xcrun
para generar dinámicamente el nombre de los archivos binarios, pero muchas herramientas de C esperan que CC
no contenga espacios.
Para obtener instrucciones detalladas sobre el uso del paquete de soporte en su propio proyecto, consulte la guía de uso.
Este proyecto empaqueta la biblioteca estándar de Python, pero no aborda la construcción de ruedas binarias. Las ruedas binarias para macOS se pueden obtener desde PyPI. Mobile Forge es un proyecto que proporciona las herramientas para construir ruedas binarias para iOS (y potencialmente para tvOS y watchOS, aunque eso no se ha probado).
Las siguientes versiones fueron compatibles en el pasado, pero ya no se mantienen: