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 プロジェクトの開発について説明しており、開発ワークフローの管理方法に関する詳細情報を探しているユーザー向けにツールの推奨事項が含まれています。