ツールチェーン管理
Ryeは、システムのPythonインストールを使用しないという点で独特です。代わりに、Pythonのインストール(ツールチェーンと呼ばれる)を自身でダウンロードして管理します。現在、Ryeでサポートされているツールチェーンには3つのタイプがあり、それぞれについて理解する必要があります。
- ポータブル CPython: Ryeは、ほとんどのニーズに合わせて、ポータブルなCPythonビルドを自身でダウンロードします。これらはindygreg/python-build-standaloneから取得されます。
- 公式PyPyビルド: PyPyは公式リリースビルドからサポートされています。
- カスタムローカルツールチェーン: ローカルにインストールされたPythonインタープリターをRyeに登録できます。その後、Ryeで管理されているプロジェクトで使用できます。
ツールチェーンの固定
プロジェクトで特定のツールチェーンを使用するには、ツールチェーンの名前を.python-version
ファイルに書き込むか、pin
コマンドを使用します。cpython
を固定する場合、cpython@
プレフィックスは省略できます。
rye pin [email protected]
ダウンロード可能なバージョンを固定すると、Ryeは必要に応じて自動的にそれを取得します。デフォルトでは、ツールチェーンは正確なバージョンに固定されます。これは、rye pin [email protected]
と書いても、非常に具体的なバージョンのcpythonが.python-version
ファイルに書き込まれることを意味します。Rye 0.5.0以降では、「緩和された」固定を実行できます。
rye pin --relaxed [email protected]
これにより、.python-version
ファイルに3.11
が保持され、Ryeは仮想環境で利用可能な最新の互換バージョンを使用します。
0.5.0で変更
rye pin --relaxed
による緩和された固定が追加されました。
ネイティブではないアーキテクチャ
0.14.0の新機能
ネイティブではないアーキテクチャの取得と固定のサポートが追加されました。
デフォルトでは、固定は実行中のマシンのアーキテクチャ用です。これは、aarch64アーキテクチャのMacで[email protected]
を固定すると、そのCPUアーキテクチャのcpythonインタープリターが使用されることを意味します。異なるアーキテクチャは、Pythonファミリ名に-{arch}
を追加することで選択できます。たとえば、x86_64
バージョンを強制するには、次のように固定する必要があります。
rye pin [email protected]
このようなカスタム固定は、pyproject.toml
ではなく、.python-version
にのみ反映されることに注意してください。
ツールチェーンの一覧表示
インストールされているツールチェーンを確認するには、rye toolchain list
を実行してリストを表示します。
rye toolchain list
[email protected] (C:\Users\armin\.rye\py\[email protected]\install\python.exe)
[email protected] (C:\Users\armin\.rye\py\[email protected]\python.exe)
インストール可能なツールチェーンを確認するには、さらに--include-downloadable
を渡します。
rye toolchain list --include-downloadable
ツールチェーンの取得
通常、Ryeはツールチェーンを自動的にダウンロードしますが、rye toolchain fetch
(rye fetch
のエイリアス)で明示的に取得することもできます。
rye toolchain fetch [email protected]
Rye 0.19.0以降、fetch
の引数は現在の固定から推測されます。つまり、次のように取得することもできます。
rye pin 3.10
rye fetch
ツールチェーンは2つのソースから取得されます。
- CPythonの場合はIndygreg's Portable Python Builds
- PyPyの場合はPyPy.org
ツールチェーンを特定の場所に取得することもできます。この場合、インタープリターはRyeが通常参照する場所に保存されず、特定の場所に保存されます。ただし、Ryeは手動で登録しない限り、それを使用できません。ただし、これはデバッグや高度な設定に役立ちます。
rye toolchain fetch [email protected] --target-path=my-interpreter
ryeをインストールせずにryeインタープリターの取得機能を使用する場合は、`RYE_NO_AUTO_INSTALL`環境変数をエクスポートして`1`に設定することをお勧めします。そうしないと、インストーラーが起動します。
ツールチェーンの登録
さらに、rye toolchain register
コマンドを使用して、外部ツールチェーンを登録することもできます。
rye toolchain register /path/to/python
ツールチェーンの名前は、インタープリターに基づいて選択されます。たとえば、通常のcpythonインストールをリンクするとcpython@version
と呼ばれますが、pypyをリンクするとpypy@version
として表示されます。Rye 0.5.0以降、デバッグビルドの場合はツールチェーンの名前に-dbg
が追加されます。名前をオーバーライドするには、--name
を渡します。
rye toolchain register --name=custom /path/to/python
ツールチェーンの削除
既に取得したツールチェーンを削除するには、rye toolchain remove
を実行します。これは、リンクされたツールチェーンでも機能することに注意してください。
rye toolchain remove [email protected]
警告
アクティブに使用されているツールチェーンを削除すると、参照している仮想環境が壊れます。
ビルド情報
0.31.0の新機能
Rye 0.31.0以前は、Pythonのインストールはビルド情報と共に取得されていました。これは、~/.rye/py/INTERPRETER
のフォルダー構造が少し異なるため、確認できます。 [email protected]/bin/python3
を見つけるのではなく、中間ビルド出力を含むbuild
フォルダーと共に、追加のinstall
フォルダー([email protected]/install/bin/python3
)があります.0.31.0以降、ビルド情報はデフォルトで削除されます。ビルド情報を取得するには、明示的に--build-info
を指定して取得するか、behavior.fetch-with-build-info
設定フラグをtrueに設定します。
rye config --set-bool behavior.fetch-with-build-info=true