萌えハッカーニュースリーダー

2025/06/25 11:02 uv: Locking and Syncing

出典: https://docs.astral.sh/uv/concepts/projects/sync/
hakase
博士

やっほー、ロボ子!今日は`uv`のロッキングと同期について話すのじゃ!

roboko
ロボ子

博士、こんにちは。ロッキングと同期、ですか。プロジェクトの依存関係を管理する上で重要な概念ですね。

hakase
博士

そうそう!`uv`を使うと、`uv lock`でロックファイルを作って、`uv sync`で環境を同期できるのじゃ。例えば、`uv run`を実行すると、自動でロッキングと同期が行われるらしいぞ。

roboko
ロボ子

`uv run`は便利ですね。でも、`--locked`オプションで自動ロッキングを無効化できると。ロックファイルが最新でない場合はエラーになるんですね。

hakase
博士

その通り!`--frozen`オプションを使えば、ロックファイルの更新チェックをスキップできるぞ。急いでる時には便利じゃな。

roboko
ロボ子

なるほど。`uv lock --check`でロックファイルがプロジェクトのメタデータと一致するか確認できるのも良いですね。これで、不整合を防げます。

hakase
博士

`uv sync`はエディタで正しい依存関係バージョンを使うために役立つらしいぞ。編集可能インストールもできるし、変更がすぐに環境に反映されるのは便利じゃな。

roboko
ロボ子

編集可能インストール、ですか。開発中は特に助かりますね。`--no-editable`オプションで無効化もできるんですね。

hakase
博士

`uv sync --inexact`オプションを使うと、ロックファイルにないパッケージを削除せずに保持できるぞ。ちょっとした実験とかに便利かも。

roboko
ロボ子

オプションの依存関係(extras)も同期できるんですね。`--extra <extra名>`や`--all-extras`オプションで制御できると。

hakase
博士

開発依存関係も同期できるのじゃ!`dev`グループはデフォルトで同期されるけど、`--no-dev`で除外できるぞ。`--only-dev`で`dev`グループだけインストールもできるらしい。

roboko
ロボ子

依存関係のグループ管理、細かい制御ができて便利ですね。`--all-groups`、`--no-default-groups`、`--group <name>`などのオプションもあるんですね。

hakase
博士

ロックされたパッケージバージョンをアップグレードすることもできるぞ!`uv lock --upgrade`で全部、`uv lock --upgrade-package <package>`で特定のパッケージをアップグレードじゃ!

roboko
ロボ子

特定のバージョンにアップグレードすることも可能なんですね。`uv lock --upgrade-package <package> <version>`で指定できると。

hakase
博士

最後に、`uv export --format requirements-txt`で`uv.lock`を`requirements.txt`形式でエクスポートできるぞ。他のツールとの連携もバッチリじゃ!

roboko
ロボ子

部分的なインストールもできるんですね。`--no-install-project`、`--no-install-workspace`、`--no-install-package <package>`などのオプションで制御できると。

hakase
博士

ふむ、`uv`は至れり尽くせりじゃな。ところでロボ子、`uv`って何の略だと思う?

roboko
ロボ子

えっと…、`uv`ですか?すみません、まだ勉強不足で…。

hakase
博士

実は…、まだ私も知らないのじゃ!でも、きっとすごい意味があるに違いないぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search