Pythonでのパッケージ管理は、最近注目されている uv というツールがあります。
それを使ってみれば、pip へはもう戻れないと思います。
1. uvの機能
uv は、Pythonのパッケージ管理・環境管理を シンプルかつ高速に 行えるツールです。主な機能は以下の通り:
- パッケージのインストール・アンインストール
- 依存関係の自動解決
- 仮想環境の自動作成・管理
- プロジェクト単位の環境管理
- 高速なキャッシュ利用による再インストールの短縮
requirements.txtとの互換性- 複数Pythonバージョン対応
💡 特に「環境の作成とパッケージ管理を一度に行える」点が便利です。
2. uvの使い方(基本例)
インストール
pip install uv
初期化
uv init
仮想環境の作成とパッケージインストール
uv venv # 仮想環境を作成するコマンド
uv add requests numpy # パッケージをインストールし、管理ファイルを更新
依存関係の確認
uv pip list # 現在の環境でインストールされているパッケージを一覧表示
パッケージのアンインストール
uv remove requests
requirements.txt の利用
uv pip install -r requirements.txt
わずか数コマンドで環境作成から依存関係管理まで完結します。
依存関係の管理 (高度な例)
uv initで作成されたpyproject.tomlに記述された依存関係をuv lockで固定し、uv syncで環境を同期するという、より洗練された方法で行います。
-
pyproject.tomlに依存関係を記述
[project] name = "my-project" version = "0.1.0" dependencies = [ "requests~=2.25", "numpy>=1.21.0,<1.22.0", ] -
uv lockで依存関係を固定 (uv.lockファイルを生成)
uv lock -
uv syncで環境を同期
uv sync
これにより、開発者間で全く同じバージョンの依存関係を共有し、環境を再現できます。
3. 従来の管理方法との比較
| 機能 | 従来 | uv |
|---|---|---|
| 仮想環境作成 | python -m venv env |
uv venv |
| パッケージインストール | pip install パッケージ |
uv add パッケージ |
| 依存関係管理 | 手動でrequirements.txtを作成 | pyproject.tomlの依存関係をuv lockで固定し、uv syncでインストール/アンインストールを同期。 |
| 再インストール速度 | キャッシュなしで毎回ダウンロード | 高速キャッシュ利用で短時間 |
| 複数プロジェクト管理 | 手動切替 | プロジェクト単位で環境分離が簡単 |
つまり、従来の
pip + venvよりも 作業量が減り、依存関係管理が自動化される のが大きなメリットです。
4. uvの歴史
- 開発開始:Pythonコミュニティ内で「軽量でシンプルなパッケージ管理ツール」として登場
-
初期バージョン:従来の
pipenvのような環境統合型ツールの軽量版として設計 - 注目ポイント:複雑な依存関係の解決を自動化し、仮想環境作成も一体化
- 最近の動向:Python 3.10+ 対応や、CI/CD環境での自動セットアップにも対応
現在は「軽量で簡単に環境管理をしたいPythonエンジニア」に特に注目されています。
まとめ
-
uvは 仮想環境作成+パッケージ管理を簡単に統合 したPythonツール - 従来の
pip + venvと比べ、作業量の削減と依存関係管理の自動化が魅力 - プロジェクト単位で環境を管理したい場合や、複数プロジェクトでの開発効率を上げたい場合に特に便利
Pythonパッケージ管理の新しい選択肢として、まずは
uv initから試してみるのがおすすめです。