Python パッケージ管理ツール uv の使い方|pip・Poetryとの比較と移行手順

Pythonでの開発において、パッケージ管理やバージョン管理、仮想環境の構築で悩んだことはありませんか?

「pipとvenvを使っているが、環境を毎回作るのが手間だ」 「Poetryやpyenvを組み合わせているが、動作が少し遅い」

この記事では、こうした悩みを解決するRust製の超高速パッケージ・プロジェクト管理ツール「uv」の使い方を解説します。 pipやPoetryを置き換え、1つのツールでPython環境全体をシンプルに管理できる方法を、Windows(PowerShell)とWSL2(Ubuntu)の両方の手順で丁寧に紹介します。

この記事でわかること

  • uv とは何か・なぜ今 uv が選ばれるのか
  • pip / pyenv / Poetry との機能比較
  • Windows(PowerShell)と WSL2(Ubuntu)への uv インストール手順
  • uv を使ったプロジェクト作成から実行までの基本フロー
  • 既存プロジェクト(pip / Poetry)から uv へ移行する方法

前提条件(検証環境)

  • Windows 11 + PowerShell 7
  • WSL2(Ubuntu 24.04 など)
  • uv のバージョン: 0.11.21(2026年6月15日時点)

uv とは

uv は、Astral 社(高速な Linter・Formatter である ruff と同じ開発元)が提供する、Rust製の超高速な Python パッケージおよびプロジェクト管理ツールです。

最大の特徴は、pip・venv・pyenv・Poetry・pip-tools の機能をこれ1つで代替できる点にあります。 インストール速度は pip の数十倍とも言われ、プロジェクトの依存関係の解決や仮想環境の作成が一瞬で完了します。

現在では、Python プロジェクトの新規立ち上げにおいて、最も推奨されるツールのひとつとなっています。

主要ツールとの比較表

既存の主要な Python 関連ツールと uv を比較すると以下のようになります。

ツール主な役割速度2026年時点の評価
uv全機能統合(バージョン・仮想環境・パッケージ管理)爆速(Rust製)現在最も推奨される標準ツール
pipパッケージインストール標準単純なスクリプト用途や一時的な利用のみ
venv仮想環境の作成uv が自動で仮想環境を作成するため代替可能
pyenvPython バージョン管理uv python install コマンドで代替可能
Poetryプロジェクト管理・依存関係管理やや遅い多機能だが、高速でシンプルな uv への移行が進んでいる

インストール手順(両環境対応)

uv のインストール方法は、OS や環境によって異なります。以下からご自身の環境に合った手順を実行してください。

Windows(PowerShell)の場合

PowerShell を起動し、以下のコマンドを実行します。(※権限エラーが出る場合は管理者権限でPowerShellを起動してください)

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

インストールが完了したら、環境変数(PATH)を反映させるために一度PowerShellを再起動します。

再起動後、以下のコマンドでバージョンが表示されればインストールは成功です。

uv --version

※今後のアップデートは uv self update コマンドで実行できます。

WSL2(Ubuntu)の場合

WSL2 のターミナル(Ubuntu など)を開き、以下のコマンドを実行します。

curl -LsSf https://astral.sh/uv/install.sh | sh

インストール後、以下のコマンドでパスを反映させるか、新しいシェルを開き直します。

source $HOME/.local/bin/env

その後、以下のコマンドでバージョンが確認できれば完了です。

uv --version

基本的な使い方(プロジェクト作成〜実行まで)

ここからは、uv を使ってプロジェクトを作成し、スクリプトを実行するまでの基本フローを解説します。 コマンドは Windows の PowerShell でも WSL2 でも共通して使用できます。

手順1:Python バージョンをインストール・指定する

まずは、使用したい Python のバージョンを用意します。uv では pyenv などの別ツールは不要です。

利用可能な Python バージョン一覧を表示するには以下を実行します。

uv python list

指定したバージョン(例:3.13)をインストールします。

uv python install 3.13

さらに、現在のプロジェクトで使う Python バージョンを固定(ピン留め)します。これにより、自動的に .python-version ファイルが作成されます。

uv python pin 3.13

手順2:プロジェクトを初期化する

プロジェクト用のフォルダを作成して、初期化を行います。

uv init my-project
cd my-project

このコマンドを実行すると、以下のようなファイルが生成されます。

  • pyproject.toml:パッケージや依存関係の設定ファイル
  • .python-version:使用する Python バージョン
  • main.py:サンプルの実行スクリプト(Hello World)

pyproject.toml の中身は以下のようになっています。

[project]
name = "my-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []

手順3:パッケージを追加・削除する

プロジェクトで使う外部パッケージ(例:requests)を追加します。

uv add requests

コマンドを実行すると、uv が自動的に .venv(仮想環境)を作成・更新し、パッケージをインストールしてくれます。手動で python -m venv .venv を実行する必要はありません。 追加後、pyproject.toml の dependencies に requests が追記されていることが確認できます。

パッケージを削除する場合は以下のコマンドを使用します。

uv remove requests

手順4:環境を同期する

チーム開発や別の PC で環境を構築する場合、uv.lock ファイルに基づいて全く同じ仮想環境を再現できます。

uv sync

Git リポジトリには pyproject.toml と uv.lock の両方をコミットしておくことで、誰の環境でも依存関係が壊れることなく、一瞬で同じ環境を立ち上げることができます。

手順5:スクリプトを実行する

プロジェクト内のスクリプトを実行する場合、わざわざ仮想環境をアクティベート(有効化)する必要はありません。uv run を使うだけで、自動的に仮想環境内で実行してくれます。

uv run main.py

従来の pip + venv のように .\.venv\Scripts\Activate.ps1 などを毎回叩く手間が省けるため、非常に快適です。

pip / Poetry からの移行手順

既存のプロジェクトを uv に移行するのも簡単です。

pip + requirements.txt から移行する場合

requirements.txt があるフォルダで初期化し、中身を一括で追加します。

uv init
uv add -r requirements.txt

uv add -r requirements.txt を使うと、requirements.txt に書かれた依存関係を pyproject.toml に取り込めます。 PowerShellでも同じコマンドで実行できるため、cat やシェル展開に依存しない方法としておすすめです。

または、一時的に旧来の pip と同じようにインストールだけを行いたい場合は、pip 互換モードも使えます。

uv pip install -r requirements.txt

Poetry から移行する場合

Poetry で使用していた pyproject.toml は、多くの場合そのまま uv でも読み込むことができます。 移行の基本は、以下のコマンドを置き換えるだけです。

  • poetry install → uv sync
  • poetry add [パッケージ] → uv add [パッケージ]
  • poetry run python main.py → uv run main.py

詳細な手順や細かな仕様の違いについては、公式の移行ガイド(Poetry)を参照してください。

Windows と WSL2 のどちらで使うべきか

uv はどちらの環境でも高速に動作しますが、用途によって使い分けるのがおすすめです。

状況推奨環境
純粋な Python 開発・データ分析やスクリプト作成Windows ネイティブ(PowerShell)
Docker や Linux ツールを併用する開発、Webバックエンド開発WSL2

どちらの環境を使っても uv のコマンド自体は完全に同一なので、学習コストはかかりません。

うまくいかない場合の確認ポイント

  • uv --version が認識されない PATH が通っていない可能性があります。ターミナル(PowerShell等)を一度閉じて、再起動してください。
  • Windows で ExecutionPolicy エラーが出る スクリプトの実行ポリシーによりブロックされています。PowerShell を「管理者として実行」で開き直してインストールコマンドを実行してください。
  • uv python install でバージョンが見つからない uv python list --all-versions を実行して、利用可能なすべてのバージョンと正確な名称を確認してください。

元に戻す方法

uv が不要になり、システムからアンインストールしたい場合は、インストール方法に応じて実行ファイルを削除します。 先にキャッシュや uv が管理している Python / ツールの保存先を削除したい場合は、以下を実行します。

uv cache clean
rm -r "$(uv python dir)"
rm -r "$(uv tool dir)"

そのうえで、WSL2(Linux)では以下のファイルを削除します。

rm ~/.local/bin/uv ~/.local/bin/uvx

Windows の PowerShell では、以下のファイルを削除します。

rm $HOME\.local\bin\uv.exe
rm $HOME\.local\bin\uvx.exe
rm $HOME\.local\bin\uvw.exe

なお、Scoop、WinGet、pipx、pip など別の方法でインストールした場合は、それぞれのパッケージ管理ツールのアンインストール方法に従ってください。

よくある質問

pip はもう使わなくてよいですか?

既存の環境をすぐにすべて置き換える必要はありません。 ただし、新しくプロジェクトを作る場合は、uv inituv adduv run を使うと仮想環境と依存関係をまとめて管理しやすくなります。

Poetry のプロジェクトはそのまま uv に移行できますか?

多くの場合、既存の pyproject.toml を使って uv sync できます。 ただし、Poetry 固有の設定やプラグインを使っている場合は、公式の移行ガイドを確認しながら段階的に移行するのがおすすめです。

Windows と WSL2 の両方に uv を入れる必要はありますか?

Windows 側と WSL2 側は別の環境として扱われるため、両方で uv を使う場合はそれぞれにインストールします。 Windows の PowerShell で作った .venv を WSL2 から使い回すような運用は避け、プロジェクトごとに uv sync で再現するほうが安全です。

まとめ

Python のパッケージ管理や仮想環境の構築は、これまで様々なツールを組み合わせる必要がありましたが、uv の登場によってすべてが1つに統合され、圧倒的に高速化されました。

「既存の環境をすべて今すぐ移行しなければならない」というわけではありませんが、新しくプロジェクトを作成する際や、環境構築の手間を減らしたい場合には、ぜひ uv を導入してみてください。

参考情報