Repolode
pypa

pypa/pip-tools

Pythonの依存関係を固定した再現可能なrequirementsファイルにまとめ、環境をその内容に同期するコマンドラインツール(pip-compile、pip-sync)のセット。

スター
8,003
フォーク
686
未解決の Issue
174
最終コミット
一昨日

これは何?

pip-toolsを使うと、ビルドの予測可能性を保ちながら、Pythonプロジェクトの依存関係を最新の状態に維持できます。pip-compileはpyproject.toml、setup.py、setup.cfg、またはrequirements.inから依存関係を読み込み、すべての推移的依存関係を含む、バージョンを完全に固定したrequirements.txtを生成します。pipのハッシュ検証モード用に、ハッシュを生成することもできます。

pip-syncはコンパイル済みのrequirementsファイルを受け取り、現在の仮想環境にパッケージをインストール、アップグレード、またはアンインストールして、ファイルの内容と完全に一致させます。すべてのパッケージ、または指定したパッケージだけをアップグレードでき、複数のrequirementsファイルで互いに制約を設定して、開発用と本番用のバージョン固定を整合させられます。

各仮想環境にpipでインストールして使用します。また、対象となるPython環境ごとに個別のバージョン固定ファイルを生成するよう、プロジェクトでは推奨しています。

主な機能

  • 01pyproject.toml、setup.py、setup.cfg、またはrequirements.inから、バージョンを固定したrequirements.txtを生成します。
  • 02推移的依存関係を含め、各バージョン固定がどのパッケージに必要とされているかを注記します。
  • 03--generate-hashesを指定すると、pipのハッシュ検証モード用にsha256ハッシュを生成します。
  • 04--upgradeと--upgrade-packageを使って、すべてのパッケージまたは指定したパッケージをアップグレードします。
  • 05pip-syncで、requirementsファイルの内容に仮想環境を完全に一致させます。
  • 06相互に制約を設定できる、複数階層のrequirementsファイルに対応しています。

ユースケース

  • 本番ビルドを再現可能にするため、アプリケーションの依存関係を固定する。
  • 意図的にバージョン固定を更新しながら、ライブラリのCI環境を安定させる。
  • 共通の制約を使って、本番用と開発用のrequirementsを分けて管理する。
  • 入力ファイルが変更されたときにバージョン固定を再生成するpre-commit hookとしてpip-compileを実行する。

クイックスタート

  1. 1

    プロジェクトの仮想環境を有効にして、pip-toolsをインストールします

    python -m pip install pip-tools
  2. 2

    requirements.inをコンパイルして、バージョンを固定したrequirements.txtを作成します

    pip-compile requirements.in
  3. 3

    requirements.txtに合わせて、仮想環境を同期します

    pip-sync

トピック

#python#dependency-management#pip#requirements#lockfile#packaging#hashes#pip-compile#pip-tools#setuptools

よくある質問

pip-tools とは?
Pythonの依存関係を固定した再現可能なrequirementsファイルにまとめ、環境をその内容に同期するコマンドラインツール(pip-compile、pip-sync)のセット。 pip-toolsを使うと、ビルドの予測可能性を保ちながら、Pythonプロジェクトの依存関係を最新の状態に維持できます。pip-compileはpyproject.toml、setup.py、setup.cfg、またはrequirements.inから依存関係を読み込み、すべての推移的依存関係を含む、バージョンを完全に固定したrequirements.txtを生成します。pipのハッシュ検証モード用に、ハッシュを生成することもできます。
pip-tools は無料で使えますか?ライセンスは?
pip-tools は BSD-3-Clause ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
pip-tools は今もメンテナンスされていますか?
活発にメンテナンス中。pip-tools の最終コミットは 2026年11月6日 です。
pip-tools は何に使えますか?
本番ビルドを再現可能にするため、アプリケーションの依存関係を固定する。 意図的にバージョン固定を更新しながら、ライブラリのCI環境を安定させる。 共通の制約を使って、本番用と開発用のrequirementsを分けて管理する。 入力ファイルが変更されたときにバージョン固定を再生成するpre-commit hookとしてpip-compileを実行する。
pip-tools のインストール方法は?
プロジェクトの仮想環境を有効にして、pip-toolsをインストールします: python -m pip install pip-tools requirements.inをコンパイルして、バージョンを固定したrequirements.txtを作成します: pip-compile requirements.in requirements.txtに合わせて、仮想環境を同期します: pip-sync
pip-tools はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/pypa/pip-tools

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト