概要
Pythonの仮想環境としてvenvを使用していましたが、興味本位で、パッケージ管理・仮想環境構築・Pythonバージョン管理までこなせるツール「uv」を導入してみました。実際に使ってみたところ、pipと比べてパッケージのインストールが圧倒的に速く、スペックの低い環境でも快適に作業できたため、今後はメインで使っていきたいと感じました。
環境準備
今回は検証用にdockerで環境を作成しました。
もちろんMacやWindowsでもインストール可能です。
# Dockerfileの内容
FROM almalinux:10.2
RUN dnf update -y
RUN echo "alias ls='ls --color=auto'" >> ~/.bashrc
WORKDIR /app
CMD [ "/bin/bash" ]
イメージをビルド
docker build -t alma10 .
docker images
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
alma10:latest 1337e382fc2f 395MB 109MB
コンテナ作成
docker run -it --rm -h uv_test -p 127.0.0.1:8888:8888 alma10:latest /bin/bash
インストール方法
公式ページに記載通りの手順でインストールしていきます。
LinuxもしくはMacでは以下を実施するだけでインストールできます。
Windowsの方は、公式ページにインストール方法が掲載されているので、そちらを参照ください。
curl -LsSf https://astral.sh/uv/install.sh | sh
インストールされたか確認
uv --version
uv 0.11.29 (x86_64-unknown-linux-gnu)
インストール手順
主な使い方
新規プロジェクトを作成する
# uv init [projectname]
uv init workspaces
Initialized project `workspaces` at `/app/workspaces`
カレントディレクトリに作成する場合
uv init
仮想環境作成
uv venv [name]
[name]を省略すると.venvで作成されます。
ライブラリ追加・削除
例. pandasを追加する場合
uv add pandas
インストール済みライブラリ確認
uv pip list
Package Version
--------------- -----------
numpy 2.5.1
pandas 3.0.3
python-dateutil 2.9.0.post0
six 1.17.0
ライブラリの詳細情報確認
uv pip show pandas
Name: pandas
Version: 3.0.3
Location: /app/workspaces/.venv/lib/python3.12/site-packages
Requires: numpy, python-dateutil
Required-by:
ライブラリ削除
uv remove pandas
実行
実行する際はuv runで実行します。
uv run [filename]
例1. main.pyを実行する場合
uv run main.py
Hello from workspaces!
例2. jupyterlabを使用する場合
※事前にuv add jupyterlabでインストールしておきます
uv run jupyter lab --allow-root --ip=0.0.0.0
パッケージの同期
pyproject.tomlの内容をもとにパッケージをインストールします
uv sync
まとめ
venvからの移行という位置づけで uv を試してみましたが、コマンドが直感的で、venvを使ったことがあれば迷うことはほとんどありませんでした。特にライブラリのインストールが体感できるレベルで速く、pyproject.tomlとuv.lockに依存関係が自動で記録されるため、環境の再現も簡単です。
今回は基本的な使い方のみでしたが、uv には uv python によるPythonバージョン管理や、uv tool でのCLIツール管理など、まだ試せていない機能も多くあります。今後はこれらも活用しながら、メインのパッケージ管理ツールとして使っていこうと思います。
公式ページ