Python – パッケージ管理ライブラリ uv の依存関係の管理方法を解説

概要

この記事では、Python のパッケージ・プロジェクト管理ライブラリ uv を使用して、プロジェクトの依存関係を管理する方法を詳しく解説します。 uv の基本的な使い方は Python – パッケージ管理ライブラリ uv の使い方を解説 を参考にしてください。

依存関係をグループで管理する

プロジェクトの依存関係はグループで管理できます。

依存関係を追加する

uv add のオプション:

オプション 説明
uv add <PACKAGE> 依存関係をデフォルトグループに追加
uv add --dev <PACKAGE> 開発用の依存関係をグループ dev に追加 (--group dev と同じ)
uv add --group <GROUP> <PACKAGE> 依存関係をグループ <GROUP> に追加
uv add --optional <GROUP> <PACKAGE> オプションの依存関係をグループ <GROUP> に追加

依存関係をグループで管理することで、uv sync で仮想環境に同期する際、指定したグループのパッケージのみインストールするといったことが可能になります。

仮想環境を削除する

依存関係の削除は uv remove で行います。

uv remove <PACKAGE>
Bash

uv remove のオプション:

オプション 説明
–dev 依存関係をグループ dev から削除 (--group dev と同じ)
–optional オプションの依存関係をグループ <OPTIONAL> から削除
–group 依存関係をグループ <GROUP> から削除
–no-sync 仮想環境を同期せず依存関係を削除

仮想環境に同期する

uv sync のオプション:

オプション 説明
uv sync --no-default-groups デフォルトグループの依存関係を含めない
uv sync --only-dev 開発用のグループ dev の依存関係のみ含める
uv sync --no-dev 開発用のグループ dev の依存関係を含めない
uv sync --group <GROUP> グループ <GROUP> の依存関係のみ含める
uv sync --no-group <GROUP> グループ <GROUP> の依存関係を含めない
uv sync --only-group <GROUP> グループ <GROUP> の依存関係のみ含める
uv sync --all-groups すべてのグループの依存関係を含める

例:

uv init --app myapp
cd myapp
# 必須の依存関係として numpy, pandas を追加
uv add numpy pandas
# 開発用の依存関係として mypy を追加
uv add --dev mypy
# オプションの依存関係として openpyxl を追加
uv add --optional opt openpyxl
Bash

上記のコマンドで依存関係を追加すると、pyproject.toml は以下のようになります。

[project]
name = "myapp"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "numpy>=2.2.3",
    "pandas>=2.2.3",
]

[project.optional-dependencies]
opt = [
    "openpyxl>=3.1.5",
]

[dependency-groups]
dev = [
    "mypy>=1.15.0",
]
TOML

requirements.txt から依存関係を追加する

pip の requirements.txt から依存関係を追加することが可能です。

uv add -r requirements.txt
Bash

Git のレポジトリから依存関係を追加する

GitHub のような Git レポジトリから依存関係を追加することが可能です。

オプション 説明
uv add --rev <REV> Git から依存関係を追加する際に使用するコミット
uv add --tag <TAG> Git から依存関係を追加する際に使用するタグ
uv add --branch <BRANCH> Git から依存関係を追加する際に使用するブランチ

例: https://github.com/tqdm/tqdm のブランチ devel を依存関係に追加

uv add git+https://github.com/tqdm/tqdm --branch devel
Bash

例: https://github.com/tqdm/tqdm のタグ v4.67.1 を依存関係に追加

uv add git+https://github.com/tqdm/tqdm --tag v4.67.1
Bash

例: https://github.com/tqdm/tqdm のコミット 0ed5d7f18fa3153834cbac0aa57e8092b217cc16 を依存関係に追加

uv add git+https://github.com/tqdm/tqdm --rev 0ed5d7f18fa3153834cbac0aa57e8092b217cc16
Bash

編集可能モードとして依存関係を追加する

依存関係を編集可能モードとして追加するには、--editable オプションを使用します。 パッケージを開発中に動作確認する際に使用します。

uv add --editable ../path/to/package
Bash

Extras を指定して依存関係を追加する

パッケージにオプションのバリエーションが提供されている場合、--extras オプションで指定します。

例えば、pandas では、Excel フォーマットのサポートなど複数のオプションが提供されています。 pip install pandas[excel] でインストールすることと同じことを uv で行うには、以下のようにします。

uv add --extras excel pandas
Bash

コメント

コメントする