uvとは?Pythonのパッケージ管理を高速化する新世代ツール入門

公開日:
更新日:
目次

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を選ばないほうがいい場面

uvは万能ではないので、次のような場面では他の選択肢を検討する価値があります。

  • 既存のPoetryプロジェクトを大規模に運用していて、移行コストが大きい場合 — 当面はPoetryのまま運用するほうが安全。新規プロジェクトからuvに切り替える戦略が現実的
  • 社内で「全員が使う標準ツール」が決まっており、それがpipやPoetryの場合 — 個人で uv を使うのは問題ないが、レポジトリにコミットする設定は標準に合わせる
  • conda系のデータサイエンス環境(学術系の特殊パッケージ、Conda-forge専用配布物が必要)の場合 — 当面はcondaの方が取り回しがよい

次のステップとしては、Dashアプリをuvで作る具体例が手軽に試せます。

参考文献

脚注
  1. uv documentation - Astral (2026-05-11 アクセス) ↩︎ ↩︎

  2. uv - GitHub (astral-sh/uv) (2026-05-11 アクセス) ↩︎ ↩︎ ↩︎

  3. Installation - uv (2026-05-11 アクセス) ↩︎

  4. Python UV: The Ultimate Guide - DataCamp (2026-05-11 アクセス) ↩︎