uvでPython環境をもっとシンプルに – pyenv+venvとの比較まとめ

みなさん、こんにちは。

前回は「pyenv+venv」を使ったPython開発環境の構築方法をご紹介しました。

今回はその続編として、最近じわじわと注目を集めている新しいツール「uv」についてご紹介します。

uvを使うと何が変わるのか、そして「pyenv+venv」と比べてどう違うのか、詳しく見ていきましょう!

 


 

uvって、一体どんなツール?

 

uv は、あの有名な Rye を開発している Astral 社が作った、Python向けの新世代ツールです。これまでの開発環境構築でバラバラに使っていた複数の機能を、uvひとつでまとめて扱えるのが最大の特徴なんです。

具体的には、uvはこんなことができます。

  • Pythonバージョンの管理
  • 仮想環境(venvに相当)の作成と切り替え
  • パッケージ管理(pipに相当)
  • lockファイルによる依存関係の固定

つまり、これまで「pyenv」「venv」「pip」とそれぞれコマンドを使い分けていた作業が、uvのたった一つのコマンド体系で完結するということです!これはシンプルで嬉しいですね。

 


 

uvのインストール方法

 

uvはRust製で、単一のバイナリファイルなのでインストールもとっても簡単です!

Linux / macOSの場合

公式のインストーラを使うのが一番手軽です。

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

インストール後、uvコマンドを使えるようにパスを通す必要があります。.bashrc.zshrcに以下の行を追記してください。

export PATH="$HOME/.cargo/bin:$PATH"

Windowsの場合

PowerShellを開いて、次のコマンドを実行します。

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

インストールの確認

インストールが無事にできたら、バージョンを確認してみましょう。

uv --version

これで準備は完了です!

 


 

uvを使ったワークフローを見てみよう

 

実際にuvを使ってPythonの開発環境を構築する流れを見てみましょう。

1. Pythonのバージョンをインストール

uv 自体にPythonのバージョン管理機能が備わっています。

# Python 3.11をインストール
uv python install 3.11

2. プロジェクトで使うPythonバージョンを指定

プロジェクトディレクトリに移動し、そこで使うPythonのバージョンを固定します。これにより、プロジェクトのルートディレクトリに.python-versionファイルが作成されます。

# プロジェクトディレクトリに移動
cd my-project

# このプロジェクトで使うバージョンを指定
uv python pin 3.11

3. 仮想環境を作成

プロジェクトのルートディレクトリで、以下のコマンドを実行するだけです。uv.python-version ファイルを読み取って、指定されたバージョンのPythonで仮想環境を作成します。

uv venv

これで、.venv フォルダが作成され、プロジェクト専用の仮想環境が完成します。venv コマンドを使う必要はありません。また、uv venv を実行すると自動的に仮想環境が有効化されるため、source .venv/bin/activate といった手動での有効化も不要です。

4. パッケージ管理

仮想環境が有効化された状態で、uvのパッケージ管理機能を使います。

# パッケージのインストール
uv pip install requests numpy

# 依存関係をrequirements.txtに保存
uv pip freeze > requirements.txt

さらに、uv lockコマンドを使えばlockファイルを生成でき、より厳密で再現性の高い環境を構築することも可能です。

 


 

「pyenv+venv」と「uv」を比較!

 

ここで、「pyenv+venv」と「uv」それぞれの特徴を表で比較してみましょう。

pyenv+venvuv
Pythonバージョン管理pyenvが担当uv単体で可能
仮想環境venvで作成uv venvで作成
パッケージ管理pipuvの高速pip互換
セットアップ手順3つのツールを組み合わせる必要ありuvひとつで完結
速度標準的Rust製で高速
エコシステムの成熟度非常に安定、利用者多数新しいツール、事例は増えつつある

どちらを使うべき?

どちらのツールにもメリットがあるので、状況に合わせて使い分けるのが賢い選択です。

「pyenv+venv」が向いている人
  • ラズパイなど、既存の環境に合わせてPythonバージョンを柔軟に切り替えたい
  • すでに多くの実績があり、安定したツールを使いたい
  • チームやCI/CD環境ですでにpyenvが前提になっている
「uv」が向いている人
  • 新しいプロジェクトを立ち上げる
  • 開発環境の構築をなるべくシンプルにしたい
  • 依存解決やパッケージインストールの高速さを体感したい

 


 

まとめ

 

pyenv+venvは、長年の実績と安定性が魅力です。特にラズパイなど特定の環境に合わせる必要がある場合に力を発揮します。

一方、uvは新世代の統合ツールとして登場し、簡単なインストールと高速な動作が特徴です。開発環境の構築がよりシンプルになります。

私のおすすめは、

  • 納品用や既存のプロジェクトは「pyenv+venv
  • 新しい開発や検証環境は「uv

と、状況に応じて使い分ける方法です。

私自身は、既存プロジェクトはpyenv+venvで安定運用しつつ、新しいプロジェクトや生成AI関連の検証環境ではuvを使ってみようと思っています。

この情報が皆さんの開発環境構築の参考になったら嬉しいです。

 

本日も最後までお読みいただきありがとうございました。

それでは、よいPythonライフを!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール