ローカルプロジェクトのインストール

コンピューター上のフォルダ/ディレクトリ[1]にあるプロジェクトをインストールしたいことは非常に一般的です。

pipでは、ユースケースに応じて、これを行う方法は2つあります。

  • 通常のインストール

  • 編集可能なインストール

通常のインストール

プロジェクトパスをpipに指定することで、ローカルプロジェクトをインストールできます。

$ python -m pip install path/to/SomeProject
$ python -m pip install path/to/SomeProject
C:> py -m pip install path/to/SomeProject

これにより、pipが関連付けられているPythonにプロジェクトがインストールされます。これは、実際の実装方法と同様の方法です。

これは、パッケージをビルドしてインストールした場合と最も近い方法であるため、CIシステムやデプロイメントで使用されるべきです(実際、まさにそのとおりです)。

編集可能なインストール

ローカルプロジェクトを「編集可能」モードでインストールできます。

$ python -m pip install -e path/to/SomeProject
$ python -m pip install -e path/to/SomeProject
C:> py -m pip install -e path/to/SomeProject

編集可能なインストールでは、ファイルをコピーせずにプロジェクトをインストールできます。代わりに、開発ディレクトリのファイルがPythonのインポートパスに追加されます。このアプローチは開発に適しており、「開発インストール」とも呼ばれます。

編集可能なインストールでは、プロジェクトのメタデータ(例:バージョン、生成する必要があるスクリプトなど)を変更した場合にのみ、再インストールを実行する必要があります。プロジェクト内の非Pythonコード(例:C拡張)のコンパイルを実行する必要がある場合は、ビルドコマンドを実行する必要があります。

注意

通常のインストールと編集可能なインストールでは、動作の違いが見られる可能性があります。これらの違いはビルドバックエンドによって異なり、詳細についてはビルドバックエンドのドキュメントを確認する必要があります。「配布パッケージ」としてプロジェクトを配布する場合、ユーザーは通常のインストールの動作を確認します。したがって、通常のインストールが正しく機能することを確認することが重要です。

注記

これは機能的にはsetuptoolsの開発モードと同じであり、setuptoolsベースのプロジェクトで使用されるメカニズムです。

setup.py developを直接使用する場合よりも2つの利点があります。

  • これは、setuptools以外のビルドバックエンドでも機能します。

  • pipを使用する場合、「.egg-info」ディレクトリはプロジェクトパスを基準に作成されます。これは、現在の作業ディレクトリにダンプするsetuptoolsよりも一般的に優れた場所です。

ビルドアーティファクト

バージョン21.3で変更されました:デフォルトでは、インストールされるプロジェクトは、ビルドシステムを呼び出す前に一時ディレクトリにコピーされなくなりました。ユーザーの移行を支援するための暫定的なフォールバックとして、--use-deprecated=out-of-tree-buildオプションが提供されています。

バージョン22.1で変更されました:--use-deprecated=out-of-tree-buildオプションは削除されました。

ローカルディレクトリにあるプロジェクトが提供されると、pipは「インプレース」でビルドシステムを呼び出します。この動作にはいくつかの結果があります。

  • 特定の種類のプロジェクトやI/Oが遅いシステム(例:ネットワーク接続ストレージまたは過度に積極的なウイルス対策ソフトウェアを使用しているシステム)では、ローカルプロジェクトのビルドが大幅に高速化されます。

  • 特定のビルドバックエンド(例:setuptools)は、プロジェクトディレクトリに2次的なビルドアーティファクト(例:.egg-infoディレクトリ)を散在させる可能性があります。

  • 特定のビルドバックエンド(例:setuptools)は、以前は各ビルドの別々のディレクトリで呼び出されたという事実を依存していたため、並列ビルドを実行できなくなる可能性があります。