コンテンツへスキップ

同期とロック

Ryeは依存関係の管理にuvを使用します。

依存関係をダウンロードするために、ryeは2つの「ロックファイル」(requirements.lockrequirements-dev.lockと呼ばれます)を作成します。これらは実際のロックファイルではありませんが、より良い解決策が実装されるまで同様の目的を果たします。

rye syncが呼び出されるたびに、ロックファイルと仮想環境が更新されます。ロックファイルのみを更新する場合は、rye lockを使用できます。

ロック

ロック時には、ロックの動作を変更するためいくつかのオプションを指定できます。これらのフラグはすべてrye syncでも利用可能です。

--update / --update-all

特定の、またはすべての要件を最新のバージョンに更新します。このフラグがない場合、依存関係は必要な場合にのみ更新されます。

rye lock --update-all

--features / --all-features

Pythonパッケージには追加の依存関係を含めることができます。デフォルトでは、インストールされるローカルパッケージはデフォルトの機能のみでインストールされます。たとえば、追加の依存関係がある場合、機能が有効になっている場合にのみインストールされます。

rye add --optional=web flask
rye lock --features=web

ワークスペースを使用する場合、パッケージ名の前にスラッシュを付ける必要があります。

rye lock --features=package-name/feature-name

--featuresパラメータは複数回渡すことができ、機能はカンマで区切ることもできます。すべての機能をオンにするには、--all-featuresパラメータを使用できます。

rye lock --all-features

--pre

デフォルトでは、更新とバージョン解決はパッケージのプレリリースを考慮しません。これらを含めたい場合は、--preを渡します。

rye lock Flask --pre

--with-sources

0.18.0で新規

デフォルトでは(pyproject.tomltool.rye.lock-with-sources構成キーがtrueに設定されていない限り)、ロックファイルはソース参照なしで生成されます。これは、カスタムソースが使用されている場合、--find-linksなどのパラメーターを手動で渡さない限り、ロックファイルをuvまたはpip経由でインストールできないことを意味します。これは、ロックファイルがDockerイメージのビルドに使用される場合に特に役立ちます。

このフラグが渡されると、ロックファイルは--index-url--extra-index-urlまたは--find-linksへの参照とともに生成されます。

rye lock --with-sources

同期

同期は、lockと同じパラメーターを受け取り、さらにいくつかのパラメーターを受け取ります。同期は通常、最初にlockが行うことを実行し、次にロックファイルを使用して仮想環境を更新します。

--no-lock

ロックステップが自動的に実行されるのを防ぐには、--no-lockを渡します。

rye sync --no-lock

--no-dev

開発用ロックファイル(requirements-dev.lock)ではなく、本番用ロックファイル(requirements.lock)に基づいてのみ同期します。

rye sync --no-dev

プラットフォーム互換性

デフォルトでは、ロックファイルは生成されたプラットフォームに依存します。

たとえば、プロジェクトがプラットフォーム固有のパッケージに依存しており、Windowsでロックファイルを生成する場合、これらのロックファイルにはWindows固有のプロジェクトが含まれます。したがって、LinuxやmacOSなどの他のプラットフォームとの互換性はありません。

クロスプラットフォームのロックファイルを生成するには、次の内容をpyproject.tomlに追加して、uvのuniversal設定を有効にできます。

[tool.rye]
universal = true