3-2. uv による仮想環境

本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

概要

Python の 開発環境管理ツールの一つである uv とそれによる仮想環境の作成についてまとめてみます。

uv は仮想環境の作成以外にもできることはありますが、ここでは主に仮想環境の観点で記載しています。

uv とは

uv は、Astral によって開発されている Python の開発環境管理ツールです。Rust 製で構築されており、以下の特徴があります:

  • 🚀 pip、pip-tools、pipx、poetry、pyenv、twine、virtualenv などを置き換える、オールインワンのツール
  • ⚡️ pip よりも 10〜100 倍高速
  • 🗂️ ユニバーサルな lockfile を用いた、包括的なプロジェクト管理を提供。
  • ❇️ インラインの依存関係メタデータに対応し、スクリプトの実行が可能。
  • 🐍 Python のバージョンのインストールと管理に対応。
  • 🛠️ Python パッケージとして公開されたツールの実行・インストールが可能。
  • 🔩 pip 互換のインターフェースを搭載し、CLIは使い慣れたままパフォーマンス向上
  • 🏢 Cargo スタイルのワークスペースに対応し、大規模プロジェクトもスケーラブルに管理。
  • 💾 グローバルキャッシュによる依存関係の重複排除で、ディスク使用量を最小化
  • Rust や Python 不要で、curlpip から簡単にインストール可能
  • 🖥️ macOS、Linux、Windows に対応

    uv は、Ruff の開発元である Astral によって開発・支援されています。
    (github から引用、日本語へ機械翻訳)

公式サイト
https://astral.sh/
https://github.com/astral-sh/uv
https://docs.astral.sh/uv/

uv の主な機能一覧

uv だけでは Python のコードのコンパイル・実行はできず、uv 自体は CPython の上に乗っかる補助ツールの位置づけになります。

ここに記載した事柄以外の詳細は 公式サイトをご確認ください。

1. Python バージョン管理 (Python versions)

  • uv python install/list/find/pin/uninstall といったコマンドで、Python 本体(CPython・PyPyなど)のインストール・切り替えが可能。必要に応じて自動インストールも行えます。

2. スクリプト実行(Scripts

  • uv run によって単一の Python スクリプト (.py や HTTP URL) を実行。
  • スクリプトヘッダーにインライン依存関係メタデータを書いておくと、自動で環境構築して実行できます。PEP 723 準拠。

3. プロジェクト管理(Project

  • uv init でプロジェクト初期化(pyproject.toml, .python-version, .venv, uv.lock 生成)。
  • uv add/remove/sync/lock/run/tree/build/publish による依存管理・環境同期・ビルド・公開。

4. ツール管理(Tools

  • uv tool install(ユーザー全体へ)、uv tool run(エイリアス uvx)による一時環境での CLI ツール実行。
  • uv tool list/uninstall/update-shell によるツール一覧やシェル連携管理。

5. pip互換インターフェース(The pip interface

  • uv pip 以下のサブコマンドで、pip や pip-tools、virtualenv のような操作が可能。
  • uv venv で仮想環境作成uv pip compile/sync による lockfile 対応の依存同期などを高速実行。

6. ユーティリティ機能(Utility

  • ワークスペース(Cargoスタイル)対応で複数パッケージを統合管理。
  • グローバルキャッシュによる依存重複排除でディスク効率アップ。
  • lockfile(uv.lock)はクロスプラットフォーム対応で人間可読かつ再現可能。

機能一覧

カテゴリ主なコマンド・特徴
Python バージョン管理install, list, pin, find, uninstall
スクリプト実行uv run、インライン依存対応
プロジェクト管理init, add/update/remove, sync, lock, tree, build, publish
ツール実行・管理uv tool install / run (uvx) / list / uninstall
pipインターフェースuv pip compile / sync / venv など典型的 pip 操作
ワークスペースCargo スタイル対応、複数プロジェクトを1ツールで管理
性能・効率グローバルキャッシュ、lockfile による複製排除と高速環境同期
プラットフォーム対応curl / pip 経由で Rust・Python 不要、macOS/Linux/Windows対応

インストール方法

スタンドアローンインストーラを利用してのインストールとなります。

Windows

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

出力例)

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新機能と改善のために最新の PowerShell をインストールしてください!https://aka.ms/PSWindows

PS C:\Users\ユーザ名> powershell -ExecutionPolicy ByPass -c “irm https://astral.sh/uv/install.ps1 | iex”
Downloading uv 0.7.20 (x86_64-pc-windows-msvc)

Installing to C:\Users\ユーザ名\.local\bin
uv.exe
uvx.exe
uvw.exe
everything’s installed!

To add C:\Users\ユーザ名\.local\bin to your PATH, either restart your shell or run:

set Path=C:\Users\ユーザ名\.local\bin;%Path% (cmd)

$env:Path = “C:\Users\ユーザー名\.local\bin;$env:Path” (powershell)

PS C:\Users\ユーザ名>

実行後、自動的にパスも設定されます。

un のインストールスクリプトを実行するとパスが設定される

macOS / Linux

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

インストール後の確認

インストール後に、ターミナルを起動しなおして、以下を実行しバージョンが表示されれば OK です。
(Windows のターミナルか PowerShell あるいは、macOS / Linux のシェルで実行)

uv --version
uv インストール後の確認

uv の基本的な使い方 (仮想環境の観点で)

仮想環境の作成

以下のコマンドで、仮想環境が作成できます。
.venv フォルダが自動的に作成されます。

uv venv
uv で仮想環境を作成

名前やパスを指定することも可能です。(例 : my-env)

uv venv my-env

特定の Python バージョンを指定して環境を作成することもできます。

uv venv --python 3.10

指定したバージョンがシステムに存在しない場合は、uv が自動的に該当バージョンのダウンロードとインストールも行います。
例)
すでに Python 3.13, 3.12, 3.11 をインストール済みの環境で 3.10 の仮想環境を作成した場合、自動で 3.10 がダウンロードされ仮想環境が作成されます。

uv で利用する Python

uv が認識できているインストール済みの Python は、uv python list で確認できます。

uv が認識している python のリスト

また、uv が自動的にダウンロードした python は、デフォルトでは、%APPDATA%\uv\python (C:\User\ユーザ名\AppData\Roaming\uv\python\ ) にインストールされます。

uv でインストールした python は、uv python uninstall -i インストールディレクトリ バージョン でアンインストールできます。

仮想環境の有効化 (Activate)

仮想環境をアクティベートすることで、作成した仮想環境で作業できます。

.\.venv\Scripts\activate   # Windows
source .venv/bin/activate  # Linux/macOS

仮想環境の無効化 (Deactivate)

仮想環境を無効にするには、以下のコマンドを実行します。

deactivate
deactivate

パッケージのインストール

Activate した状態で、以下を実行することで仮想環境にパッケージをインストールできます。

uv pip install パッケージ名

例)
仮想環境を Activate して requests パッケージをインストール

uv で仮想環境に requests パッケージをインストール

依存関係の書き出しと再現

仮想環境にインストールされているパッケージ・依存関係の情報を書きだし と、それに基づいてのインストールを行う場合は以下のコマンドとなります。

uv pip freeze > requirements.txt
uv pip install -r requirements.txt

参考となれば幸いです。