【OSS】uv 入門2026 — Python パッケージマネージャーの使い方

ネオン管で描いたUVのロゴを配したuvのアイキャッチ画像

Python で使えるパッケージ管理ツール uv の導入と基本操作をまとめます。コマンドを2つ実行するだけで仮想環境と依存が整い、検証した uv 0.12.13 では数十パッケージの解決がミリ秒で完了しました。実行例も載せています。

目次

この記事が解決する悩み

  • pipとvenvの使い分けに疲れてきた
  • プロジェクトごとの依存管理をもう少し速くしたい

対象読者: Pythonで開発している人
前提知識: pipでパッケージを入れた経験があること

結論

Pythonのパッケージ管理に不満があるなら、Rust製の超高速ツール「uv」がおすすめです。インストールは3行で終わります。

# インストール(macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# インストール(Windows)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# プロジェクト作って依存追加するだけ
uv init my_project && cd my_project
uv add requests

この一連の操作が1秒かからないんですよね。pipでrequirements.txtを書いてvenvを作ってactivateして…という手間が丸ごと消えます。

uvって何?

Astral社(Ruffのあの会社)がRustで作り込んだ次世代Pythonパッケージマネージャーです。

従来のツールはこれ1本で片付きます。

  • pip(インストール)
  • venv / virtualenv(仮想環境)
  • pip-tools(ロックファイル)
  • poetry(プロジェクト管理)
  • pipx(CLIツールの分離)
  • pyenv(Pythonバージョン管理)

速度はpip比で10〜100倍。キャッシュが効いていれば、数十パッケージの解決がミリ秒で終わります。

uv.lockは1ファイルで全環境をカバーします。poetryのようにOSごとにロックが分かれないのが地味に嬉しい。

インストール

スタンドアロンバイナリなので、Pythonすら事前に要りません。コピペで動きます。

macOS / Linux

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

Windows

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

実践的な使い方

プロジェクト作成 → 依存追加 → 実行

uv init my_app
cd my_app
uv add httpx rich

# もう実行できる
uv run python -c "import httpx; print('OK')"

uv addした時点で勝手に.venvが作られてパッケージが入ります。

ロックと同期

uv lock    # uv.lock生成、0.3ms
uv sync    # lockからインストール

git cloneして最初に叩くのが uv sync だけなので、チーム開発がめちゃくちゃ楽になります。

スクリプトに直接依存関係を書く

これが一番好きな機能です。スクリプトの先頭に依存を書いておくだけで、uv runが環境を自動で作って実行します。

# /// script
# dependencies = [
#   "httpx",
#   "rich",
# ]
# ///
import httpx
from rich.pretty import pprint

response = httpx.get("https://api.github.com")
pprint(response.json())
uv run script.py

単発のデータ取得スクリプトやPoCでとっても重宝します。

Pythonバージョン管理

uv python install 3.10 3.11 3.12
uv python pin 3.12

pyenvはもう(゚⊿゚)イラネ

Dockerで使う

マルチステージビルドと組み合わせるとビルド時間が改善します。

FROM python:3.12-slim AS builder

COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv

WORKDIR /app
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev

COPY src/ ./src/

依存だけを先にレイヤーに乗せるのがポイントで、コードだけ変えたときはこの層がキャッシュヒットします。

pip互換モードもある

既存プロジェクトを移行したい場合はuv pipコマンドがそのまま使えます。pipをuv pipに置き換えるだけでCIが速くなります。

uv pip install -r requirements.txt
uv pip compile requirements.in --output-file requirements.txt
uv venv

まとめ

機能従来uv
パッケージインストールpipuv pip / uv add
仮想環境venv / virtualenv自動生成
ロックファイルpip-tools / poetryuv.lock(クロスプラットフォーム)
Pythonバージョンpyenvuv python install
CLIツール実行pipxuvx
単発スクリプト(面倒)uv run(自動解決)

まだpipでいいやって人は、一度試してみてください。戻れなくなりますよ。

【広告】お名前.comならドメイン取得が格安。

検証環境

OS Windows 11 (build 10.0.26200)
CPU AMD Ryzen 9 PRO 8945HS w/ Radeon 780M Graphics
メモリ 28GB
言語/ツール uv 0.12.13 / Python 3.12(uv が取得) / rich(uv run –with で一時インストール)
使用コマンド uv run –no-project –python 3.12 –with rich — python -c “import rich”
測定日 2026-09-17

上記の環境で実際に実行して確認した結果です。環境が異なる場合は挙動が変わることがあります。

uv run --with で依存を一時インストールして実行した結果(ホスト環境は汚していない)
uv run –with で依存を一時インストールして実行した結果(ホスト環境は汚していない)

参考

本文の記述は以下の一次情報を確認して書いています。

あわせて読みたい

【広告】このサイトはConoHa WINGで運営しています。安定した高速サーバーで快適にブログを書けています。いつもありがとう!!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次