這是一個元包,用於建立可以嵌入到 macOS、iOS、tvOS 或 watchOS 專案中的 Python 版本。
此分支建構了 Python 3.13 的打包版本。透過複製主儲存庫的其他分支可以獲得其他 Python 版本:
它的工作原理是下載、修補和建置 Python 的胖二進位檔案和選定的先決條件,並將它們打包為可以合併到 XCode 專案中的框架。 Python 標準庫中的二進位模組作為可以在運行時動態載入的二進位檔案分發。
macOS 軟體包是官方 macOS 二進位檔案的重新捆綁,經過修改以使其可重新定位,刪除了 IDLE、Tkinter 和turtle 軟體包,並應用了 App Store 合規性修補程式。
本專案編譯的 iOS、tvOS 和 watchOS 套件使用作為 Python 3.13 一部分的官方 PEP 730 程式碼來提供 iOS 支援;相關補丁已向後移植到 3.9-3.12。已套用其他補丁來新增 tvOS 和 watchOS 支援。
二進位檔案支援 macOS 的 x86_64 和 arm64;適用於 iOS 和 appleTV 裝置的arm64;以及用於 watchOS 設備的arm64_32。它還支援 x86_64 和 M1 硬體上的裝置模擬器。這應該使程式碼能夠運行在:
使用這些套件的最簡單方法是使用 Briefcase 建立專案。 Briefcase 將下載這些支援包的預編譯版本,並將它們新增至 Xcode 專案(或預先建置存根應用程序,如果是 macOS)。
可以從 Github 發布頁面下載框架的預先建置版本並將其新增至您的專案。
或者,若要自行建置框架,請下載/複製此儲存庫,然後在根目錄中執行:
make
(或make all
)來建構一切。make macOS
為 macOS 建立一切。make iOS
為 iOS 建立一切。make tvOS
為 tvOS 建立一切。make watchOS
為 watchOS 建構一切。這應該:
產生的支援包將打包為dist
資料夾中的.tar.gz
檔案。
每個支援包包含:
VERSIONS
,一個文字文件,描述用於建立支援包的特定程式碼版本;platform-site
,一個包含網站自訂腳本的資料夾,可用於使本機 Python 安裝看起來像是平台支援的每個底層目標體系結構的裝置上安裝。這是必需的,因為當您執行pip
時,您將在具有特定架構的 macOS 電腦上;如果pip
嘗試安裝二進位套件,它將安裝 macOS 二進位輪(不適用於 iOS/tvOS/watchOS)。但是,如果您在呼叫 pip 時將platform-site
資料夾新增至PYTHONPATH
,則站點自訂將使您的 Python 安裝會傳回與裝置上行為一致的platform
和sysconfig
回應,這將導致pip
安裝適合平台的軟體套件。Python.xcframework
,Python 運行時庫的多架構構建在 iOS/tvOS/watchOS 上, Python.xcframework
包含每個支援的 ABI(裝置和模擬器)的切片。包含切片的資料夾也可以用作PYTHONHOME
,因為它包含bin
、 include
和lib
目錄。
bin
資料夾不包含 Python 可執行檔(因為無法呼叫它們)。但是,它確實包含建置包所需的編譯器的 shell 別名。這是必要的,因為 Xcode 使用xcrun
別名動態產生二進位檔案的名稱,但許多 C 工具期望CC
不包含空格。
有關在自己的專案中使用支援包的詳細說明,請參閱使用指南
該專案打包了Python標準庫,但不涉及建造二進制輪子。 macOS 的二進制輪子可以從 PyPI 獲得。 Mobile Forge 是一個項目,它提供了為 iOS 建造二進制輪子的工具(也可能為 tvOS 和 watchOS,儘管尚未經過測試)。
以下版本過去受支持,但不再維護: