メインコンテンツまでスキップ

uv

uv は、非常に高速なPythonパッケージおよびプロジェクトマネージャーです。
MCP の実装に Python を使うプロジェクトの場合、 uv を使っているものを多くみかけます。

pippip-toolsvirtualenvvenv といった既存のツール群を置き換え、単一のツールで高速な開発体験を提供することを目的としています。

pip 等のツールを使うチュートリアルを参考にしたら

上記にあげた既存のツールを使うようなチュートリアルや記事は多くあります。
もちろん、間違いを避けるためにその通りにしてもいいですが、 uv を変わりに使うことを検討してみても良いと思います。

ただ、慣れないうちは、python で実行しているものを uv で実行するのも戸惑うかもしれないので、無理に uv を使う必要はありません。

Rye を使う記事を見た場合

Rye を使う場合は、uv に置き換えることを真っ先に検討してください。
というのも、Rye と uv は同じ会社が管理しており、新規プロジェクトには uv を使うことを推奨しているためです。

Rye vs uv どっちを使うべき? #Python - Qiita

主な特徴

  • 圧倒的な速度: Rustによる実装、並列処理、効率的な依存関係解決により、pipなどと比較して10倍から100倍高速に動作します。
  • 統一されたツールチェーン: パッケージインストール (pip)、仮想環境管理 (venv)、依存関係のロック (pip-tools) などの機能を単一のCLIで提供します。
  • pipとの互換性: uv pip install のように、既存の pip コマンドと互換性のあるインターフェースを持っており、スムーズな移行が可能です。
  • 効率的なキャッシュ: グローバルキャッシュ機構により、一度ダウンロードしたパッケージは再利用され、ディスク容量の節約とインストール時間の短縮に貢献します。
  • モダンなプロジェクト管理: uv init によるプロジェクトの初期化や、再現性の高い環境を構築するためのロックファイルなど、現代的な開発ワークフローをサポートします。

インストール

Installation | uv

Windows であれば WinGet を使ってインストールすることをオススメします。
もし、WinGet を利用できない環境であれば PowerShell でインストールしましょう。

WinGet

winget install --id=astral-sh.uv  -e

PowerShell

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

基本的な使い方

チュートリアルをこなす程度であれば、基本的な部分だけで問題無いと思います。以下の公式の解説を参考にしてください。

ここに書いてあることは最低限

ここで使い方として説明しているものは、最初の足がかりとしての最低限のものに絞っています。   uv を解説する記事はインターネットに多くありますので、用途に応じて検索したり AI に質問してみてください。

Python のインストール

# 最新をインストール
uv python install

# 特定バージョンをインストール
uv python install 3.14

# インストールされているバージョンを確認 (以下のように一覧が表示)
uv python list
cpython-3.14.0b4-windows-x86_64-none C:\Users\xxx\AppData\Roaming\uv\python\cpython-3.14.0b4-windows-x86_64-none\python.exe
cpython-3.14.0b4+freethreaded-windows-x86_64-none <download available>
cpython-3.13.5-windows-x86_64-none C:\Users\xxx\AppData\Roaming\uv\python\cpython-3.13.5-windows-x86_64-none\python.exe

# 現在使っているバージョン確認
uv run python --version

プロジェクトの作成

uv init

alt text

.python-version というファイルがあるのが分かりますが、ここに使われるバージョンが入っています。

以下のように特定のバージョンに変更することもできます。pin することで、対象の Python バージョンもインストールされます。

uv python pin 3.13

sync することで、仮想環境が作成されます。

uv sync

alt text

仮想環境の作成と有効化

プロジェクトを作らなくても仮想環境を作成することができます。

# .venv という名前で仮想環境を作成
uv venv

# 仮想環境を有効化 (Powershell)
.venv\Scripts\activate

パッケージの追加

add を使うことでパッケージを導入できます。

uv add requests flask
uv sync

pip と同様のコマンドでパッケージをインストールすることもできます。 --index-url のようなオプションを必要とするパッケージが出てきたら、こちらの方が楽かもしれません。

uv pip install requests flask

スクリプトの実行

uv run exmaple.py

# 引数ありの場合
uv run example.py test

uv プロジェクト内であれば、依存関係も含めて上記だけで実行が可能です。

もし、uv プロジェクトには無い単体のスクリプトを実行する場合は、依存関係等もコマンドに列挙する必要があります。