【ゆーぶい】

uv とは?

最終更新:
💡 Pythonの開発環境を、ひとつのツールで整える

Pythonのパッケージ、仮想環境、プロジェクト、Pythonのバージョンをまとめて管理するツール。Astralが開発し、Rustで実装されている。

📌 このページのポイント
uv:Pythonの開発環境をまとめて管理 依存関係 pyproject.toml uv add / uv lock uv.lockに記録 仮想環境 .venv uv venv / uv sync 作成・同期 uv Pythonの版 uv python install uv python pin 導入・版の指定 CLIツール uv tool install uvx 独立環境で利用 速度・同期の結果は、環境やオプションによる
各用途のコマンド例です。プロジェクトではロックの更新条件や依存グループも確認します。
ひよこ ひよこ
uvって、何をしてくれるツールなの?
ペンギン先生 ペンギン先生
Pythonで使うパッケージや仮想環境を管理するツールだよ。Python自体のバージョンも管理できるので、いくつものツールに分かれていた作業をまとめられるんだ。
ひよこ ひよこ
すごく速いって聞くけど、必ず速くなるの?
ペンギン先生 ペンギン先生
公式ではpipより10〜100倍速いというベンチマークを紹介しているよ。ただし、それは測定条件での結果なんだ。パッケージの種類、通信速度、キャッシュの有無によって差が変わるから、自分の環境でも確かめるといいね。
ひよこ ひよこ
チームで同じ環境を使うのにも役立つ?
ペンギン先生 ペンギン先生
うん。uv lockで依存関係をuv.lockに記録し、uv syncで環境を整える。uv runは通常、実行前にロックと環境を確認・更新するよ。ロックを勝手に更新させたくないときは--lockedを使うと、不整合があればエラーになる。OSやPython、選ぶ依存グループなどの条件もそろえよう
ひよこ ひよこ
今あるrequirements.txtは使えるの?
ペンギン先生 ペンギン先生
使えるよ。uv venvで仮想環境を作り、uv pip install -r requirements.txtでインストールできるんだ。pipと似た操作ができるけれど、細かな違いもあるので公式の互換性ガイドを確認してね。
ひよこ ひよこ
短いスクリプトやCLIツールにも使える?
ペンギン先生 ペンギン先生
使えるよ。スクリプトに依存関係を書くPEP 723にも対応しているし、uv toolでCLIツールを独立した環境へ入れられるんだ。用途に応じて、プロジェクト管理とツール管理を使い分けられるよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「uv」って出てきたら「Pythonのパッケージや開発環境をまとめて管理するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「uv」 = Pythonのパッケージ・プロジェクト管理ツールの名前
💬 Astralが開発しているツールの名前だよ。ここでは紫外線の略語ではなく、Pythonの開発環境を管理するuvを指すんだ

参考資料

← 用語集にもどる