これは、macOS、iOS、tvOS、または watchOS プロジェクトに埋め込むことができるバージョンの Python を構築するためのメタパッケージです。
このブランチは、Python 3.13 のパッケージ版をビルドします。他の Python バージョンは、メイン リポジトリの他のブランチを複製することで利用できます。
これは、Python のファット バイナリと選択された前提条件をダウンロード、パッチ適用、ビルドし、XCode プロジェクトに組み込めるフレームワークとしてパッケージ化することで機能します。 Python 標準ライブラリのバイナリ モジュールは、実行時に動的にロードできるバイナリとして配布されます。
macOS パッケージは、公式 macOS バイナリを再バンドルしたもので、再配置できるように変更され、IDLE、Tkinter、turtle パッケージが削除され、App Store コンプライアンス パッチが適用されています。
このプロジェクトによってコンパイルされた iOS、tvOS、および watchOS パッケージは、iOS サポートを提供するために Python 3.13 の一部である公式 PEP 730 コードを使用します。関連するパッチは 3.9 ~ 3.12 にバックポートされました。 tvOS と watchOS のサポートを追加するために追加のパッチが適用されました。
バイナリは、macOS の x86_64 および arm64 をサポートします。 iOS および AppleTV デバイスの場合は arm64。 watchOS デバイスの場合は arm64_32。また、x86_64 と M1 ハードウェアの両方でデバイス シミュレーターもサポートします。これにより、コードが以下で実行できるようになります。
これらのパッケージを使用する最も簡単な方法は、ブリーフケースを使用してプロジェクトを作成することです。ブリーフケースは、これらのサポート パッケージのコンパイル済みバージョンをダウンロードし、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 (デバイスとシミュレーター) ごとのスライスが含まれています。スライスを含むフォルダーにはbin
、 include
、およびlib
ディレクトリが含まれるため、 PYTHONHOME
としても使用できます。
bin
フォルダーには Python 実行可能ファイルは含まれていません (起動できないため)。ただし、パッケージのビルドに必要なコンパイラのシェル エイリアスは含まれています。 Xcode はxcrun
エイリアスを使用してバイナリの名前を動的に生成しますが、多くの C ツールではCC
スペースが含まれないことを想定しているため、これが必要です。
独自のプロジェクトでサポート パッケージを使用する詳細な手順については、使用ガイドを参照してください。
このプロジェクトは Python 標準ライブラリをパッケージ化していますが、バイナリ ホイールの構築については扱いません。 macOS 用のバイナリ ホイールは PyPI から入手できます。 Mobile Forge は、iOS (テストされていませんが、tvOS および watchOS 用の可能性もあります) 用のビルド バイナリ ホイールを構築するためのツールを提供するプロジェクトです。
以下のバージョンは以前はサポートされていましたが、現在はメンテナンスされていません。