Pip はワークフロー管理ツールではありません

pip の中心的な目的は、*あなたの環境にインストールされたパッケージを管理する*ことです。パッケージ 관리는ほとんどの Python 開発ワークフローの重要な部分ですが、それはあくまでも一部に過ぎません。環境の作成と管理、開発タスクの設定と実行、Python インタプリタ自体の管理、そして全体的な「プロジェクト」の管理といったタスクは、pip の範囲外です。開発ワークフロー全体を管理することは複雑なタスクであり、「正しいアプローチ」については多くの見解があります。

Pip には、開発ワークフローで役立つ多くの機能があります。たとえば、pip install . による現在のプロジェクトのインストール、編集可能なインストール、そして要件ファイルなどです。しかし、pip がワークフロー全体を管理するという意図はありません。

たとえば、pip はプロジェクトの wheel をビルドするために使用できる pip wheel コマンドを提供しています。しかし、ソースディストリビューションをビルドするための対応するコマンドはありません。これは、wheel のビルドはパッケージのインストールにおける基本的なステップ (そのパッケージがソースコードとしてのみ利用可能な場合) である一方、ソースディストリビューションのビルドはインストール時に必要ないためです。プロジェクトをビルドするためのツールが必要なユーザーは、wheel とソースディストリビューションをビルドするためのコマンドを提供する build のような専用のツールを使用する必要があります。

ensurepip の役割

Pip は、標準の Python インストールで、ensurepip stdlib モジュールを介して利用できます。これにより、ユーザーは「すぐに使える」インストーラーを利用できるようになり、PyPI で利用可能なあらゆるツールやライブラリにアクセスできます。特に、これにより多くのワークフローツールのインストールが可能になります。

この「ブートストラップ」メカニズムは、PEP 453 で提案 (そして承認) されました。

詳細情報

Python パッケージングユーザーガイド では、Python プロジェクトの開発について説明しており、開発ワークフローの管理方法に関する詳細情報を探しているユーザー向けにツールの推奨事項が含まれています。