概要
この記事では、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
のオプション:
オプション | 説明 |
---|---|
–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 |
すべてのグループの依存関係を含める |
例:
上記のコマンドで依存関係を追加すると、pyproject.toml
は以下のようになります。
requirements.txt から依存関係を追加する
pip の requirements.txt
から依存関係を追加することが可能です。
Git のレポジトリから依存関係を追加する
GitHub のような Git レポジトリから依存関係を追加することが可能です。
オプション | 説明 |
---|---|
uv add --rev <REV> |
Git から依存関係を追加する際に使用するコミット |
uv add --tag <TAG> |
Git から依存関係を追加する際に使用するタグ |
uv add --branch <BRANCH> |
Git から依存関係を追加する際に使用するブランチ |
例: https://github.com/tqdm/tqdm
のブランチ devel
を依存関係に追加
例: https://github.com/tqdm/tqdm
のタグ v4.67.1
を依存関係に追加
例: https://github.com/tqdm/tqdm
のコミット 0ed5d7f18fa3153834cbac0aa57e8092b217cc16
を依存関係に追加
編集可能モードとして依存関係を追加する
依存関係を編集可能モードとして追加するには、--editable
オプションを使用します。
パッケージを開発中に動作確認する際に使用します。
Extras を指定して依存関係を追加する
パッケージにオプションのバリエーションが提供されている場合、--extras
オプションで指定します。
例えば、pandas では、Excel フォーマットのサポートなど複数のオプションが提供されています。
pip install pandas[excel]
でインストールすることと同じことを uv
で行うには、以下のようにします。
コメント