目次
Pythonでパッケージを入れるたびに pip install と python -m venv .venv を別々に叩くのが地味に面倒な場面ってありますよね。そのあたりを uv 1つで全部済ませられると知って試したら、pipより圧倒的に速くて開発の流れがだいぶ軽くなったので、入門のメモを残しておきます[1]。
uvとは
uvはAstral社が開発するPythonのパッケージ管理ツールで、Rustで書かれているのが特徴です。pip installの代わりに使える後継ツールで、pipより10〜100倍速い、というのが最大の売りです[1:1]。
uvで何ができるか
uvはpip / pip-tools / pipx / poetry / pyenv / virtualenvを1つにまとめたツールです[2]。次のことが、すべてuvコマンドだけで完結します。
- Pythonのバージョン管理(pyenvの代替)
- 仮想環境の作成(virtualenvの代替)
- パッケージのインストール(pipの代替)
- プロジェクト管理とlockfile(poetryの代替)
- 一時的なツール実行(pipxの代替)
Python環境構築で複数ツールを覚える必要がほぼ無くなります。
uvの立ち位置
Pythonのパッケージ管理ツールはいくつか選択肢があります。代表格との違いを把握しておくと、uvを選ぶ判断がしやすくなります[2:1]。
| 比較軸 | uv | pip | Poetry | Rye |
|---|---|---|---|---|
| 速度 | 圧倒的に速い | 遅め | 中 | 速い(内部でuvを使う) |
| Pythonバージョン管理 | あり | なし | なし | あり |
| 仮想環境管理 | 自動 | 別ツール必要 | あり | あり |
| lockfile | あり | なし(標準) | あり | あり |
| 公開(PyPIへ) | 対応 | 別ツール必要 | スムーズ | 対応 |
| 開発元 | Astral | Python公式 | コミュニティ | Astral(uvに統合) |
注目しておきたいのは、かつての有力候補だったRyeがAstral社に買収され、uvに統合される方向で進んでいる点です[2:2]。新規プロジェクトでuvを採用するケースが2026年に入って急速に増えています。
Poetryはまだ「PyPIへの公開ワークフロー」が一段スムーズですが、uvも追いついてきています。
インストール
uvは1コマンドでインストールできます[3]。
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows(PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Homebrewやpipxなどでもインストールできるので、好みに応じて公式ドキュメントを参照してください。
インストール後、ターミナルでuv --versionを実行してバージョン番号が出れば成功です。
uv --version
最小のプロジェクトを作って動かす
uvの基本コマンドは多くありません。まずは新規プロジェクトを作ってPythonスクリプトを実行する流れだけ押さえれば十分です[4]。
プロジェクトを初期化する
uv init my-project
cd my-project
my-projectディレクトリの中に、pyproject.tomlやhello.pyなどの初期ファイルが自動で作られます。pyproject.tomlはプロジェクトの設定や依存パッケージを管理するファイルで、Python公式が推奨する標準形式です。
パッケージを追加する
依存パッケージはuv addで追加します。例としてrequestsを入れてみます。
uv add requests
このコマンドで、仮想環境の.venv/配下への自動作成、requestsのインストール、pyproject.tomlのdependenciesへの追記、uv.lockという lockfile の更新までが行われます。pipとvenvを別々に動かしていた頃と比べると、初期セットアップで考えることが減ります。
スクリプトを実行する
uvで作ったプロジェクト内のスクリプトはuv runで実行します。
uv run hello.py
仮想環境を手動でactivateする必要はありません。uv runが自動でプロジェクトの環境を読み込んでスクリプトを動かしてくれます。
これでinit → add → runという最小ループが回せます。
覚えておくと便利なコマンド
init / add / runが日常作業の中心ですが、状況によって使う他のコマンドもあります。
uv venv — 仮想環境だけ作る
プロジェクトをまだ作らずに、仮想環境だけ欲しい場面で使います。
uv venv
.venv/ディレクトリが作られます。source .venv/bin/activateで従来通り使えますが、uv runを使えばこの手順は不要です。
uv pip install — pip互換の使い方
「uv addでプロジェクト管理するほどではないが、ちょっと試したい」というときはpip互換の使い方もできます。
uv pip install pandas
pipと同じ感覚で使えますが、内部の解決と取得は速いままです。
uv sync — lockfileから環境を再現
チーム開発や別マシンへの移行で、uv.lockから環境を再現します。
uv sync
pyproject.tomlとuv.lockを見て、必要なパッケージを揃え直してくれます。
uvx — 一時的にコマンドを実行
pipx相当の機能で、グローバルに入れたくないツールを一時的に実行します。
uvx ruff check .
「ruffを一時的にインストールしてruff check .を実行する」を1コマンドにしたものです。普段使いしないツールに向きます。
pipからの移行ポイント
これまでpipを使っていた人がuvに移行する際の早見表です。
| pipでやっていたこと | uvでの書き方 |
|---|---|
python -m venv .venv && source .venv/bin/activate |
uv venv(またはuv runで自動化) |
pip install pkg |
uv add pkg(プロジェクト用)またはuv pip install pkg |
pip install -r requirements.txt |
uv sync(pyproject.tomlの場合)またはuv pip install -r requirements.txt |
pip freeze > requirements.txt |
uvならuv.lockが自動管理 |
python script.py |
uv run script.py |
uv add と uv run の2つを覚えれば日常作業の大半はカバーできます。
さらに学ぶためのリファレンス
uvの機能はここで紹介した以外にもあります。深く使いたい人は次のリファレンスが便利です。
- 公式ドキュメント: uv documentation - Astral — 入門〜上級まで
- インストール詳細: Installation - uv — 各OS、Docker、CI用
- Pythonバージョン管理: Installing and managing Python - uv — pyenvの代替として使う
- GitHubリポジトリ: astral-sh/uv - GitHub — 最新のリリース・Changelog
uvを選ばないほうがいい場面
uvは万能ではないので、次のような場面では他の選択肢を検討する価値があります。
- 既存のPoetryプロジェクトを大規模に運用していて、移行コストが大きい場合 — 当面はPoetryのまま運用するほうが安全。新規プロジェクトからuvに切り替える戦略が現実的
- 社内で「全員が使う標準ツール」が決まっており、それがpipやPoetryの場合 — 個人で uv を使うのは問題ないが、レポジトリにコミットする設定は標準に合わせる
- conda系のデータサイエンス環境(学術系の特殊パッケージ、Conda-forge専用配布物が必要)の場合 — 当面はcondaの方が取り回しがよい
次のステップとしては、Dashアプリをuvで作る具体例が手軽に試せます。
参考文献
uv documentation - Astral (2026-05-11 アクセス) ↩︎ ↩︎
uv - GitHub (astral-sh/uv) (2026-05-11 アクセス) ↩︎ ↩︎ ↩︎
Installation - uv (2026-05-11 アクセス) ↩︎
Python UV: The Ultimate Guide - DataCamp (2026-05-11 アクセス) ↩︎
