Rust製の超高速なPythonパッケージ/プロジェクト管理ツール。pip、virtualenv、pyenv、pipxなどを置き換えます。
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
プロジェクトの仮想環境を有効にして、pip-toolsをインストールします
python -m pip install pip-tools - 2
requirements.inをコンパイルして、バージョンを固定したrequirements.txtを作成します
pip-compile requirements.in - 3
requirements.txtに合わせて、仮想環境を同期します
pip-sync
トピック
よくある質問
- 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 の数値は毎日更新されます。
関連プロジェクト
pipとvirtualenvを組み合わせ、PipfileとPipfile.lockで再現性の高いビルドを実現する、Python向けのvirtualenv・依存関係管理ツール。
アプリケーションと依存関係を、ポータブルな virtualenv のように使える単一の実行可能な .pex ファイルにパッケージ化する Python ツール。
GitまたはMercurialのタグからパッケージのバージョンを判定し、setuptoolsと連携するPythonツール。
1回の実行に必要なパッケージを一時環境にインストールし、実行後に破棄するPythonランチャー。
Python Package Index(PyPI)やその他のインデックスからパッケージをインストールする、Python標準のパッケージインストーラーです。