uv
uv
は、非常に高速なPythonパッケージおよびプロジェクトマネージャーです。
MCP の実装に Python を使うプロジェクトの場合、 uv
を使っているものを多くみかけます。
pip
、pip-tools
、virtualenv
、venv
といった既存のツール群を置き換え、単一のツールで高速な開発体験を提供することを目的としています。
上記にあげた既存のツールを使うようなチュートリアルや記事は多くあります。
もちろん、間違いを避けるためにその通りにしてもいいですが、 uv
を変わりに使うことを検討してみても良いと思います。
ただ、慣れないうちは、python
で実行しているものを uv
で実行するのも戸惑うかもしれないので、無理に uv
を使う必要はありません。
Rye を使う場合は、uv
に置き換えることを真っ先に検討してください。
というのも、Rye と uv
は同じ会社が管理しており、新規プロジェクトには uv
を使うことを推奨しているためです。
主な特徴
- 圧倒的な速度: Rustによる実装、並列処理、効率的な依存関係解決により、
pip
などと比較して10倍から100倍高速に動作します。 - 統一されたツールチェーン: パッケージインストール (
pip
)、仮想環境管理 (venv
)、依存関係のロック (pip-tools
) などの機能を単一のCLIで提供します。 pip
との互換性:uv pip install
のように、既存のpip
コマンドと互換性のあるインターフェースを持っており、スムーズな移行が可能です。- 効率的なキャッシュ: グローバルキャッシュ機構により、一度ダウンロードしたパッケージは再利用され、ディスク容量の節約とインストール時間の短縮に貢献します。
- モダンなプロジェクト管理:
uv init
によるプロジェクトの初期化や、再現性の高い環境を構築するためのロックファイルなど、現代的な開発ワークフローをサポートします。
インストール
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
.python-version
というファイルがあるのが分かりますが、ここに使われるバージョンが入っています。
以下のように特定のバージョンに変更することもできます。pin
することで、対象の Python バージョンもインストールされます。
uv python pin 3.13
sync
することで、仮想環境が作成されます。
uv sync
仮想環境の作成と有効化
プロジェクトを作らなくても仮想環境を作成することができます。
# .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
プロジェクトには無い単体のスクリプトを実行する場合は、依存関係等もコマンドに列挙する必要があります。