Skip to content

requirements.txtをuv環境に追加

問題点: UV(超高速Pythonパッケージインストーラー)で依存関係を管理していますが、requirements.txtファイルに記載された複数のパッケージを個別に手動でインストールするのが非効率的です。特に依存関係が多い場合、この作業は煩雑になります。

解決策: UVにはrequirements.txtを直接読み込む機能が組み込まれており、単一のコマンドで全ての依存関係を一括インストールできます。以下の方法を使い分けることで効率的に管理可能です。

標準的な依存関係のインストール

bash
uv pip install -r requirements.txt
  • 動作: カレントディレクトリのrequirements.txtから全パッケージを読み込み
  • 実行環境: アクティブな仮想環境に依存関係を追加
  • 最適なケース:
    • 既存プロジェクトの依存関係を復元する場合
    • 環境設定をrequirements.txtで管理したい場合

プロジェクト依存関係の管理

bash
uv add -r requirements.txt
  • 動作: 依存関係をインストールしつつ、pyproject.tomlにも自動追加
  • 実行環境: UVで管理されているプロジェクト環境
  • 最適なケース:
    • 新規プロジェクトのセットアップ時
    • 依存関係をプロジェクト設定ファイルに統合したい時
    • チームメンバーと開発環境を共有する必要がある場合

ベストプラクティス

効率的なワークフロー

  1. 仮想環境アクティブ化: source .venv/bin/activate
  2. 依存関係インストール: uv pip install -r requirements.txt
  3. 開発時のパッケージ追加: uv pip install packagename

重要な注意点

uv addはプロジェクト設定(pyproject.toml)を変更します。設定ファイルを直接編集している場合は整合性の衝突を避けるためuv pip installを使用してください。

応用: 複数ファイルの処理

複数の要件ファイルがある場合、ファイルパスを直接指定:

bash
uv pip install -r dev-requirements.txt -r prod-requirements.txt

UVの依存関係管理機能を使えば、大規模なプロジェクトでもrequirements.txtを通じた効率的なパッケージ管理が実現できます。特にプロジェクト設定としてpyproject.tomlを活用する場合は、uv addコマンドで設定ファイルと環境の同期が自動化されるため、ヒューマンエラーの減少に繋がります。