Python環境管理ツールuvの導入

読了目安: 約4

uvとは

uvは、Pythonとパッケージのバージョンをすべて管理できる環境構築ツールです。Rust で開発されており、従来のpipやpip-toolsと比較して非常に高速に動作します。

このツールを使うことで、プロジェクトごとに異なるPythonバージョンやパッケージの組み合わせを簡単に管理でき、再現性の高い環境構築が実現できます。

導入方法

uvのインストールは非常に簡単です。以下のコマンドを実行するだけで導入できます。

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

Windowsをお使いの場合は、PowerShellで以下のコマンドを実行します。

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

インストールが完了したら、ターミナルで uv --version を実行して、正しくインストールされたことを確認できます。

Pythonバージョンとパッケージの管理

Pythonバージョンの管理

uvを使えば、プロジェクトごとに異なるPythonバージョンを簡単に切り替えられます。

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

# プロジェクト途中でPythonバージョンを切り替え
uv python pin 3.12

パッケージの管理

パッケージのインストールや管理も、uvコマンドで統一的に行えます。

# 新しいプロジェクトを作成
uv init my-project
cd my-project

# パッケージをインストール
uv add requests

# 開発用パッケージをインストール
uv add --dev pytest

uvは依存関係を uv.lock ファイルに記録するため、チーム全体で同じ環境を再現できます。このロックファイルにより、どの環境でも同じバージョンのパッケージがインストールされることが保証されます。

環境の再現方法

uv.lock ファイルを基にした環境の再現は、以下のコマンド1つで完結します。

uv sync

このコマンドを実行すると、ロックファイルに記録された依存関係が自動的にインストールされます。開発者全員が同じPythonバージョンと同じパッケージバージョンの環境を使用できるようになります。

チーム開発では、uv.lock ファイルをGitで管理することで、環境の差異によるトラブルを防げます。新しいメンバーがプロジェクトに参加する際も、uvをインストールして uv sync を実行するだけで、すぐに開発を始められます。

Pythonスクリプトの実行

uvで管理されたプロジェクトでPythonスクリプトを実行する場合、uv run コマンドを使用します。

# Pythonスクリプトを実行
uv run python script.py

# または、直接Pythonコマンドとして実行
uv run script.py

uv run を使うことで、プロジェクトの依存関係が自動的に解決され、正しい環境でスクリプトが実行されます。仮想環境を明示的にアクティベートする必要がないため、スムーズに開発を進められます。

まとめ

uvは、Pythonの環境管理を大幅に簡素化してくれるツールです。インストールが手軽で、Pythonバージョンとパッケージを一元管理できる点が魅力です。

再現性の高い環境構築が求められるプロジェクトでは、特に有用なツールと言えます。

より詳しい情報は、uv公式ドキュメントをご参照ください。

あわせて読みたい記事

Miniconda と Mamba のインストール

サイエンス系パッケージの環境構築に必要となるMinicondaとMambaについて、インストール方法と基本的な使い方を紹介します。uvでは対応できないPyPI未公開パッケージを扱う際に役立つツールで、Mambaは高速な依存関係解決が特徴です。