結論
Pythonのパッケージ管理にちょっとでも不満があるなら、今すぐRust製の超高速ツール「uv」に乗り換えるのがいい。たったの3行で完了します。
# インストール(macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh
# プロジェクト作って依存追加するだけ
uv init my_project && cd my_project
uv add requests
この一連の操作が1秒かからないんですよね。pipでrequirements.txt書いてvenv作ってactivateして…いままで大変でしたが、uvだと脳死で完了しちゃいます。
uvって何?
Astral社(Ruffのあの会社)がRustでガリガリに最適化した、次世代Pythonパッケージマネージャーです。これ1本で従来のツール群を片付けられます。
pipでのインストール、venv/virtualenvでの仮想環境、pip-toolsのロックファイル、poetryのプロジェクト管理、pipxのCLIツール分離、pyenvのPythonバージョン管理。これら全部、uvで事足ります。
速度はpip比で10〜100倍!キャッシュが効いてると数十パッケージの解決がミリ秒で終わります。CIでのストレスが減るのが地味に嬉しい。
クロスプラットフォームのロックファイルも地味に熱い。poetryはプラットフォームごとにロックが分かれて地味に面倒でしたが、uv.lockは1つで全環境カバーします。
インストール
スタンドアロンバイナリなので、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コマンドがそのまま使えます。
uv pip install -r requirements.txt
uv pip compile requirements.in --output-file requirements.txt
uv venv
pipをuv pipに置き換えるだけでCIが速くなります。
まとめ
| 機能 | 従来 | uv |
|---|---|---|
| パッケージインストール | pip | uv pip / uv add |
| 仮想環境 | venv / virtualenv | 自動生成 |
| ロックファイル | pip-tools / poetry | uv.lock(クロスプラットフォーム) |
| Pythonバージョン | pyenv | uv python install |
| CLIツール実行 | pipx | uvx |
| 単発スクリプト | (面倒) | uv run(自動解決) |
まだpipでいいやって人は、一度試してみてください。戻れなくなりますよ。
【広告】お名前.comならドメイン取得が格安。![]()
【広告】このサイトはConoHa WINGで運営しています。安定した高速サーバーで快適にブログを書けています。いつもありがとう!!![]()

コメント