pip install¶
使用方法¶
python -m pip install [options] <requirement specifier> [package-index-options] ...
python -m pip install [options] -r <requirements file> [package-index-options] ...
python -m pip install [options] [-e] <vcs project url> ...
python -m pip install [options] [-e] <local project path> ...
python -m pip install [options] <archive url/path> ...
py -m pip install [options] <requirement specifier> [package-index-options] ...
py -m pip install [options] -r <requirements file> [package-index-options] ...
py -m pip install [options] [-e] <vcs project url> ...
py -m pip install [options] [-e] <local project path> ...
py -m pip install [options] <archive url/path> ...
説明¶
パッケージをインストールする
要件指定子を使用してPyPI(およびその他のインデックス)から。
VCSプロジェクトURLから。
ローカルプロジェクトディレクトリから。
ローカルまたはリモートのソースアーカイブから。
pipは「要件ファイル」からのインストールもサポートしており、インストールする環境全体を簡単に指定できます。
概要¶
pip installにはいくつかの段階があります
基本的な要件を特定します。ここでユーザーが指定した引数が処理されます。
依存関係を解決します。ここでインストールされるものが決定されます。
ホイールをビルドします。可能な限りすべての依存関係がホイールにビルドされます。
パッケージをインストールします(アップグレード/置換されるものはアンインストールします)。
pip install
は、--upgrade
が指定されていない限り、インストールされたバージョンをそのまま残すことを優先します。
引数の処理¶
インストール対象の項目を確認する場合、pipは次の順序で各項目のタイプをチェックします
プロジェクトまたはアーカイブのURL。
ローカルディレクトリ(
pyproject.toml
またはsetup.py
が含まれている必要があります。そうでない場合、pipはエラーを報告します)。ローカルファイル(sdistまたはwheel形式のアーカイブで、それらの形式の命名規則に従います)。
識別された各項目は、インストールによって満たされるべき要件のセットに追加されます。
名前とバージョンの決定¶
各候補項目について、pipはプロジェクト名とバージョンを知る必要があります。ホイール(.whl
ファイル拡張子で識別)の場合、これはWheel仕様に従ってファイル名から取得できます。ローカルディレクトリまたは明示的に指定されたsdistファイルの場合、setup.py egg_info
コマンドを使用してプロジェクトメタデータが決定されます。インデックスを介して配置されたsdistの場合、ファイル名がプロジェクト名とバージョンについて解析されます(これは理論的にはegg_info
コマンドを使用するよりもわずかに信頼性が低いですが、不要な数のファイルのダウンロードと処理を回避します)。
任意のURLは#egg=name
構文を使用できます(VCSサポートを参照)プロジェクト名を明示的に指定します。
要件の充足¶
pipが満たすべき要件のセットを取得したら、指定された制約を満たす最新のバージョンがインストールされるという単純なルールを使用して、各要件のどのバージョンをインストールするかを選択します(ただし、こちらを参照して、プレリリースバージョンに関する例外を確認してください)。選択されたバージョンのソースが複数ある場合、いずれのソースも許容されると想定されます(そうでなければバージョンが異なるためです)。
インストールされたものに関する情報の取得¶
installコマンドには、pipがインストールした内容のJSONレポートを生成する--report
オプションがあります。--dry-run
と--ignore-installed
と組み合わせて、実際にインストールすることなく要件を解決するために使用できます。
レポートはファイルまたは標準出力に書き込むことができます(--report -
を--quiet
と組み合わせて使用します)。
JSONレポートの形式については、インストールレポートに記載されています。
インストール順序¶
注記
このセクションは、ランタイム依存関係のインストール順序に関するものであり、ビルド依存関係([build-system]テーブルを使用して指定)には適用されません。
v6.1.0以降、pipは依存関係をその依存関係の前に、つまり「トポロジカル順序」でインストールします。これは、pipが現在行っている順序に関する唯一の約束です。pipがインストール引数の順序または要件ファイルの項目の順序で偶然にものをインストールすることがあるかもしれませんが、これは約束ではありません。
依存関係のサイクル(別名「循環依存関係」)が発生した場合、現在の実装(後で変更される可能性があります)では、サイクルで最初に遭遇したメンバーが最後にインストールされます。
たとえば、quuxがfooに依存し、fooがbarに依存し、barがbazに依存し、bazがfooに依存する場合
$ python -m pip install quux
...
Installing collected packages baz, bar, foo, quux
$ python -m pip install bar
...
Installing collected packages foo, baz, bar
C:\> py -m pip install quux
...
Installing collected packages baz, bar, foo, quux
C:\> py -m pip install bar
...
Installing collected packages foo, baz, bar
v6.1.0より前では、pipはインストール順序について何も約束していませんでした。
トポロジカルにインストールするという決定は、環境を各ステップで利用可能な状態に保つ方法でインストールを進めるという原則に基づいています。これには、主に2つの実用的な利点があります
インストール中の環境の同時使用がより機能する可能性が高くなります。
インストールの失敗によって壊れた環境が残る可能性が低くなります。pipは最終的に失敗のロールバックをサポートしたいと考えていますが、今のところ、これは改善です。
新しいインストール順序は、ビルド依存関係を宣言するためにsetup_requires
の使用を置き換えることを目的としていません(そして置き換えていません)が、次のプロファイルに適合するsdistからのインストール(以前は失敗していた可能性があります)に役立つ場合があります
それらは、
install_requires
を使用してインストール依存関係としても宣言されているビルド依存関係を持っています。python setup.py egg_info
は、ビルド依存関係がインストールされていなくても機能します。何らかの理由で、それらは
setup_requires
を使用してビルド依存関係を宣言しません。
要件ファイル形式
このセクションは要件ファイル形式に移動されました。
要件指定子
このセクションは要件指定子に移動されました。
要件ごとのオーバーライド
これは現在要件ファイル形式で説明されています。
プレリリースバージョン¶
v1.4以降、pipはデフォルトでプレリリースで指定された安定版のみをインストールします。バージョンが準拠したバージョンとして解析できない場合、プレリリースとみなされます。
要件指定子にプレリリースまたは開発バージョンが含まれている場合(例:>=0.0.dev0
)、pipはその要件についてプレリリースと開発バージョンを許可します。これには!=フラグは含まれません。
pip install
コマンドは、プレリリースと開発リリースのインストールを有効にする--preフラグもサポートしています。
VCSサポート
これは現在VCSサポートで説明されています。
パッケージの検索¶
pipはPyPI上のパッケージをHTTPシンプルインターフェースを使用して検索します。これはこちらとこちらで説明されています。
pipは、パッケージの検索方法を変更するための多くのパッケージインデックスオプションを提供しています。
pip は、いくつかの場所からパッケージを検索します。PyPI(または --index-url
で指定されたインデックス、--no-index
で無効にされていない場合)、ローカルファイルシステム、および --find-links
または --extra-index-url
で指定された追加のリポジトリです。検索される場所の優先順位はありません。すべてチェックされ、要件に最も「適合する」もの(バージョン番号の観点から - 詳細については、仕様 を参照)が選択されます。
pip install の例 を参照してください。
SSL 証明書の検証
これは、HTTPS 証明書 で説明されています。
キャッシング
これは、キャッシング で説明されています。
Wheel キャッシュ
これは、キャッシング で説明されています。
ハッシュチェックモード
これは、安全なインストール で説明されています。
ローカルプロジェクトのインストール
これは、ローカルプロジェクトのインストール で説明されています。
編集可能なインストール
これは、ローカルプロジェクトのインストール で説明されています。
ビルドシステムインターフェース
これは、ビルドシステムインターフェース で説明されています。
オプション¶
- -r, --requirement <file>¶
指定された requirements ファイルからインストールします。このオプションは複数回使用できます。
(環境変数:
PIP_REQUIREMENT
)
- -c, --constraint <file>¶
指定された constraints ファイルを使用してバージョンを制限します。このオプションは複数回使用できます。
(環境変数:
PIP_CONSTRAINT
)
- --no-deps¶
パッケージの依存関係をインストールしません。
(環境変数:
PIP_NO_DEPS
,PIP_NO_DEPENDENCIES
)
- --pre¶
プレリリース版と開発版を含めます。デフォルトでは、pip は安定版のみを見つけます。
(環境変数:
PIP_PRE
)
- -e, --editable <path/url>¶
ローカルプロジェクトパスまたはVCS URLから、編集可能なモード(つまり、setuptoolsの「開発モード」)でプロジェクトをインストールします。
(環境変数:
PIP_EDITABLE
)
- --dry-run¶
実際には何もインストールせず、インストールされるものを表示するだけです。 --ignore-installed と組み合わせて、要件を「解決」するために使用できます。
(環境変数:
PIP_DRY_RUN
)
- -t, --target <dir>¶
<dir> にパッケージをインストールします。デフォルトでは、<dir> に既存のファイル/フォルダは置き換えられません。<dir> にある既存のパッケージを新しいバージョンに置き換えるには、 --upgrade を使用します。
(環境変数:
PIP_TARGET
)
- --platform <platform>¶
<platform> と互換性のあるホイールのみを使用します。実行中のシステムのプラットフォームがデフォルトです。ターゲットインタープリターでサポートされている複数のプラットフォームを指定するには、このオプションを複数回使用します。
(環境変数:
PIP_PLATFORM
)
- --python-version <python_version>¶
ホイールと「Requires-Python」の互換性チェックに使用するPythonインタープリターのバージョンです。実行中のインタープリターから導き出されたバージョンがデフォルトです。バージョンは、最大3つのドット区切りの整数(例:「3」は3.0.0、「3.7」は3.7.0、「3.7.3」は3.7.3)を使用して指定できます。メジャー・マイナーバージョンは、ドットなしの文字列(例:「37」は3.7.0)としても指定できます。
(環境変数:
PIP_PYTHON_VERSION
)
- --implementation <implementation>¶
Python 実装 <implementation> と互換性のあるホイールのみを使用します(例:'pp'、'jy'、'cp'、または 'ip')。指定しない場合、現在のインタープリターの実装が使用されます。実装に依存しないホイールを強制するには 'py' を使用します。
(環境変数:
PIP_IMPLEMENTATION
)
- --abi <abi>¶
Python abi <abi> と互換性のあるホイールのみを使用します(例:'pypy_41')。指定しない場合、現在のインタープリターの abi タグが使用されます。ターゲットインタープリターでサポートされている複数の abi を指定するには、このオプションを複数回使用します。一般的に、このオプションを使用する場合は、 --implementation、--platform、および --python-version を指定する必要があります。
(環境変数:
PIP_ABI
)
- --user¶
プラットフォームのPythonユーザーインストールディレクトリにインストールします。通常は ~/.local/、またはWindowsでは %APPDATA%Python です。(詳細については、Python ドキュメントの site.USER_BASE を参照してください。)
(環境変数:
PIP_USER
)
- --root <dir>¶
この代替ルートディレクトリを基準にしてすべてをインストールします。
(環境変数:
PIP_ROOT
)
- --prefix <dir>¶
lib、bin、その他のトップレベルフォルダが配置されるインストールプレフィックスです。結果として得られるインストールには、pip の Python インタープリターを参照するスクリプトやその他のリソースが含まれている場合があり、
--prefix
の Python インタープリターではありません。別の(pipがない可能性のある)環境にパッケージをインストールする場合は、--python
オプションも参照してください。(環境変数:
PIP_PREFIX
)
- --src <dir>¶
編集可能なプロジェクトをチェックアウトするディレクトリです。仮想環境でのデフォルトは「<venv path>/src」です。グローバルインストールのデフォルトは「<current dir>/src」です。
(環境変数:
PIP_SRC
,PIP_SOURCE
,PIP_SOURCE_DIR
,PIP_SOURCE_DIRECTORY
)
- -U, --upgrade¶
指定されたすべてのパッケージを最新バージョンにアップグレードします。依存関係の処理は、使用されるアップグレード戦略によって異なります。
(環境変数:
PIP_UPGRADE
)
- --upgrade-strategy <upgrade_strategy>¶
依存関係のアップグレード方法を決定します [デフォルト: only-if-needed]。「eager」 - 依存関係は、現在インストールされているバージョンがアップグレードされたパッケージの要件を満たしているかどうかに関係なくアップグレードされます。「only-if-needed」 - アップグレードされたパッケージの要件を満たしていない場合にのみアップグレードされます。
(環境変数:
PIP_UPGRADE_STRATEGY
)
- --force-reinstall¶
すでに最新バージョンであっても、すべてのパッケージを再インストールします。
(環境変数:
PIP_FORCE_REINSTALL
)
- -I, --ignore-installed¶
インストール済みのパッケージを無視し、上書きします。既存のパッケージが異なるバージョンである場合、または異なるパッケージマネージャーでインストールされた場合、システムが壊れる可能性があります!
(環境変数:
PIP_IGNORE_INSTALLED
)
- --ignore-requires-python¶
Requires-Python情報を無視します。
(環境変数:
PIP_IGNORE_REQUIRES_PYTHON
)
- --no-build-isolation¶
最新のソース配布物をビルドする際の隔離を無効にします。このオプションを使用する場合は、PEP 518で指定されたビルド依存関係が既にインストールされている必要があります。
(環境変数:
PIP_NO_BUILD_ISOLATION
)
- --use-pep517¶
ソース配布物のビルドにPEP 517を使用します(従来の動作を強制するには--no-use-pep517を使用します)。
(環境変数:
PIP_USE_PEP517
)
- --check-build-dependencies¶
PEP517を使用する場合、ビルド依存関係をチェックします。
(環境変数:
PIP_CHECK_BUILD_DEPENDENCIES
)
- --break-system-packages¶
pipが外部管理下のPythonインストールを変更することを許可します。
(環境変数:
PIP_BREAK_SYSTEM_PACKAGES
)
- -C, --config-settings <settings>¶
PEP 517ビルドバックエンドに渡される設定。設定はKEY=VALUEの形式です。複数のキーをバックエンドに渡すには、複数の--config-settingsオプションを使用します。
(環境変数:
PIP_CONFIG_SETTINGS
)
- --global-option <options>¶
installまたはbdist_wheelコマンドの前にsetup.py呼び出しに渡される追加のグローバルオプション。
(環境変数:
PIP_GLOBAL_OPTION
)
- --compile¶
Pythonソースファイルをバイトコードにコンパイルします。
(環境変数:
PIP_COMPILE
)
- --no-compile¶
Pythonソースファイルをバイトコードにコンパイルしません。
(環境変数:
PIP_NO_COMPILE
)
- --no-warn-script-location¶
PATH外にスクリプトをインストールする場合の警告を表示しません。
(環境変数:
PIP_NO_WARN_SCRIPT_LOCATION
)
- --no-warn-conflicts¶
壊れた依存関係に関する警告を表示しません。
(環境変数:
PIP_NO_WARN_CONFLICTS
)
- --no-binary <format_control>¶
バイナリパッケージを使用しません。複数回指定でき、既存の値に追加されます。「:all:」で全てのバイナリパッケージを無効化、「:none:」でセットを空にしたり、コンマ区切りの1つ以上のパッケージ名を指定できます(コロンは不要)。ただし、一部のパッケージはコンパイルが難しく、このオプションを使用するとインストールに失敗する場合があります。
(環境変数:
PIP_NO_BINARY
)
- --only-binary <format_control>¶
ソースパッケージを使用しません。複数回指定でき、既存の値に追加されます。「:all:」で全てのソースパッケージを無効化、「:none:」でセットを空にしたり、コンマ区切りの1つ以上のパッケージ名を指定できます。バイナリ配布がないパッケージは、このオプションを使用するとインストールに失敗します。
(環境変数:
PIP_ONLY_BINARY
)
- --prefer-binary¶
ソースパッケージよりもバイナリパッケージを優先します。ソースパッケージの方が新しい場合でも優先されます。
(環境変数:
PIP_PREFER_BINARY
)
- --require-hashes¶
繰り返し可能なインストールのために、各要件に対してハッシュをチェックすることを要求します。要件ファイル内のいずれかのパッケージに--hashオプションがある場合、このオプションは暗黙的に指定されます。
(環境変数:
PIP_REQUIRE_HASHES
)
- --progress-bar <progress_bar>¶
プログレスバーを使用するかどうかを指定します [on, off, raw] (デフォルト: on)
(環境変数:
PIP_PROGRESS_BAR
)
- --root-user-action <root_user_action>¶
rootユーザーとしてpipを実行する場合のアクション [warn, ignore] (デフォルト: warn)
(環境変数:
PIP_ROOT_USER_ACTION
)
- --report <file>¶
pipが提供された要件をインストールするために実行した処理を記述するJSONファイルを作成します。 --dry-runと--ignore-installedと組み合わせて、要件を「解決」するために使用できます。ファイル名に-を使用すると、標準出力に出力されます。標準出力に出力する場合は、pipのログ出力をJSON出力と混在させないために--quietオプションと組み合わせてください。
(環境変数:
PIP_REPORT
)
- --no-clean¶
ビルドディレクトリをクリーンアップしません。
(環境変数:
PIP_NO_CLEAN
)
- -i, --index-url <url>¶
PythonパッケージインデックスのベースURL(デフォルトはhttps://pypi.org/simple)。これは、PEP 503(シンプルなリポジトリAPI)に準拠したリポジトリ、または同じ形式でレイアウトされたローカルディレクトリを指している必要があります。
(環境変数:
PIP_INDEX_URL
,PIP_PYPI_URL
)
- --extra-index-url <url>¶
--index-urlに加えて使用するパッケージインデックスの追加URL。 --index-urlと同じルールに従う必要があります。
(環境変数:
PIP_EXTRA_INDEX_URL
)
- --no-index¶
パッケージインデックスを無視します(--find-links URLのみを参照します)。
(環境変数:
PIP_NO_INDEX
)
例¶
PyPIから要件指定子を使用して
SomePackage
とその依存関係をインストールします。python -m pip install SomePackage # latest version python -m pip install 'SomePackage==1.0.4' # specific version python -m pip install 'SomePackage>=1.0.4' # minimum version
py -m pip install SomePackage # latest version py -m pip install "SomePackage==1.0.4" # specific version py -m pip install "SomePackage>=1.0.4" # minimum version
ファイルに指定された要件のリストをインストールします。要件ファイルを参照してください。
python -m pip install -r requirements.txt
py -m pip install -r requirements.txt
既にインストールされている
SomePackage
をPyPIの最新バージョンにアップグレードします。python -m pip install --upgrade SomePackage
py -m pip install --upgrade SomePackage
注記
これは、直接的な要件である
SomePackage
の更新を保証し、インストールされているバージョンがSomePackage
の最小要件を満たしていない場合、依存関係をアップグレードする可能性があります。依存関係の非必須更新(間接的な要件)は、--upgrade-strategy
コマンドの影響を受けます。「編集可能」モードでローカルプロジェクトをインストールします。編集可能インストールに関するセクションを参照してください。
python -m pip install -e . # project in current directory python -m pip install -e path/to/project # project in another directory
py -m pip install -e . # project in current directory py -m pip install -e path/to/project # project in another directory
VCSからプロジェクトをインストールします。
python -m pip install 'SomeProject@git+https://git.repo/some_pkg.git@1.3.1'
py -m pip install "SomeProject@git+https://git.repo/some_pkg.git@1.3.1"
「編集可能」モードでVCSからプロジェクトをインストールします。VCSサポートと編集可能インストールに関するセクションを参照してください。
python -m pip install -e 'git+https://git.repo/some_pkg.git#egg=SomePackage' # from git python -m pip install -e 'hg+https://hg.repo/some_pkg.git#egg=SomePackage' # from mercurial python -m pip install -e 'svn+svn://svn.repo/some_pkg/trunk/#egg=SomePackage' # from svn python -m pip install -e 'git+https://git.repo/some_pkg.git@feature#egg=SomePackage' # from 'feature' branch python -m pip install -e 'git+https://git.repo/some_repo.git#egg=subdir&subdirectory=subdir_path' # install a python package from a repo subdirectory
py -m pip install -e "git+https://git.repo/some_pkg.git#egg=SomePackage" # from git py -m pip install -e "hg+https://hg.repo/some_pkg.git#egg=SomePackage" # from mercurial py -m pip install -e "svn+svn://svn.repo/some_pkg/trunk/#egg=SomePackage" # from svn py -m pip install -e "git+https://git.repo/some_pkg.git@feature#egg=SomePackage" # from 'feature' branch py -m pip install -e "git+https://git.repo/some_repo.git#egg=subdir&subdirectory=subdir_path" # install a python package from a repo subdirectory
エクストラ、つまりオプションの依存関係を含むパッケージをインストールします(仕様)。
python -m pip install 'SomePackage[PDF]' python -m pip install 'SomePackage[PDF] @ git+https://git.repo/SomePackage@main#subdirectory=subdir_path' python -m pip install '.[PDF]' # project in current directory python -m pip install 'SomePackage[PDF]==3.0' python -m pip install 'SomePackage[PDF,EPUB]' # multiple extras
py -m pip install "SomePackage[PDF]" py -m pip install "SomePackage[PDF] @ git+https://git.repo/SomePackage@main#subdirectory=subdir_path" py -m pip install ".[PDF]" # project in current directory py -m pip install "SomePackage[PDF]==3.0" py -m pip install "SomePackage[PDF,EPUB]" # multiple extras
特定のソースアーカイブファイルをインストールします。
python -m pip install './downloads/SomePackage-1.0.4.tar.gz' python -m pip install 'http://my.package.repo/SomePackage-1.0.4.zip'
py -m pip install "./downloads/SomePackage-1.0.4.tar.gz" py -m pip install "http://my.package.repo/SomePackage-1.0.4.zip"
直接参照に従って特定のソースアーカイブファイルをインストールします(仕様)。
python -m pip install 'SomeProject@http://my.package.repo/SomeProject-1.2.3-py33-none-any.whl' python -m pip install 'SomeProject @ http://my.package.repo/SomeProject-1.2.3-py33-none-any.whl' python -m pip install 'SomeProject@http://my.package.repo/1.2.3.tar.gz'
py -m pip install "SomeProject@http://my.package.repo/SomeProject-1.2.3-py33-none-any.whl" py -m pip install "SomeProject @ http://my.package.repo/SomeProject-1.2.3-py33-none-any.whl" py -m pip install "SomeProject@http://my.package.repo/1.2.3.tar.gz"
代替パッケージリポジトリからインストールします。
PyPIではなく、別のインデックスからインストールします。
python -m pip install --index-url http://my.package.repo/simple/ SomePackage
py -m pip install --index-url http://my.package.repo/simple/ SomePackage
アーカイブを含むローカルフラットディレクトリからインストールし、インデックスをスキャンしません。
python -m pip install --no-index --find-links=file:///local/dir/ SomePackage python -m pip install --no-index --find-links=/local/dir/ SomePackage python -m pip install --no-index --find-links=relative/dir/ SomePackage
py -m pip install --no-index --find-links=file:///local/dir/ SomePackage py -m pip install --no-index --find-links=/local/dir/ SomePackage py -m pip install --no-index --find-links=relative/dir/ SomePackage
PyPIに加えて、インストール中に追加のインデックスを検索します。
警告
メインリポジトリにないパッケージ(プライベートパッケージなど)を検索するためにこのオプションを使用することは、依存関係の混乱と呼ばれるセキュリティの脆弱性により安全ではありません。攻撃者は、プライベートパッケージよりも優先的に選択されるように、公開リポジトリでパッケージを主張することができます。
python -m pip install --extra-index-url http://my.package.repo/simple SomePackage
py -m pip install --extra-index-url http://my.package.repo/simple SomePackage
安定版に加えて、プレリリース版と開発版も検索します。デフォルトでは、pipは安定版のみを検索します。
python -m pip install --pre SomePackage
py -m pip install --pre SomePackage
ソースからパッケージをインストールします。
バイナリーパッケージは使用しません。
python -m pip install SomePackage1 SomePackage2 --no-binary :all:
py -m pip install SomePackage1 SomePackage2 --no-binary :all:
SomePackage1
をソースからインストールするように指定します。python -m pip install SomePackage1 SomePackage2 --no-binary SomePackage1
py -m pip install SomePackage1 SomePackage2 --no-binary SomePackage1