設定

pipでは、ユーザーは3つのメカニズムでその動作を変更できます。

  • コマンドラインオプション

  • 環境変数

  • 設定ファイル

このページでは、設定ファイルと環境変数がどのように機能し、pipのさまざまなコマンドラインオプションとどのように関連しているかについて説明します。

こちらも参照してください

pip configコマンド。pipの設定を管理するのに役立ちます。

設定ファイル

設定ファイルは、コマンドラインオプションのデフォルト値を変更できます。ファイルは標準のINI形式で記述されます。

pipには3つの「レベル」の設定ファイルがあります

  • global:システム全体の設定ファイル。ユーザー間で共有されます。

  • user:ユーザーごとの設定ファイル。

  • site:環境ごとの設定ファイル。つまり、仮想環境ごと。

さらに、上記のいずれかを上書きする環境変数を指定できます。

場所

pipの設定ファイルは、かなり標準的な場所にあります。この場所はオペレーティングシステムによって異なり、下位互換性の理由から複雑さが増しています。ユーザー設定ファイルがレガシーな場所と現在の場所の両方に存在する場合、現在のファイルの値がレガシーファイルの値よりも優先されることに注意してください。

グローバル

環境変数XDG_CONFIG_DIRS(存在する場合)に設定されたパスのいずれかの「pip」サブディレクトリ内。たとえば、/etc/xdg/pip/pip.confです。

これに続いて/etc/pip.confがロードされます。

ユーザー

$HOME/.config/pip/pip.confXDG_CONFIG_HOME環境変数を尊重します。

レガシーな「ユーザーごとの」設定ファイルも、存在する場合はロードされます:$HOME/.pip/pip.conf

サイト

$VIRTUAL_ENV/pip.conf

グローバル

/Library/Application Support/pip/pip.conf

ユーザー

ディレクトリ$HOME/Library/Application Support/pipが存在する場合は$HOME/Library/Application Support/pip/pip.conf、それ以外の場合は$HOME/.config/pip/pip.conf

レガシーな「ユーザーごとの」設定ファイルも、存在する場合はロードされます:$HOME/.pip/pip.conf

サイト

$VIRTUAL_ENV/pip.conf

グローバル
  • Windows 7以降の場合:C:\ProgramData\pip\pip.ini(非表示ですが書き込み可能)

  • Windows Vistaの場合:グローバル設定はサポートされていません。

  • Windows XPの場合:C:\Documents and Settings\All Users\Application Data\pip\pip.ini

ユーザー

%APPDATA%\pip\pip.ini

レガシーな「ユーザーごとの」設定ファイルも、存在する場合はロードされます:%HOME%\pip\pip.ini

サイト

%VIRTUAL_ENV%\pip.ini

PIP_CONFIG_FILE

さらに、環境変数PIP_CONFIG_FILEを使用すると、最後にロードされる設定ファイルを指定でき、その値は前述のファイルで設定された値を上書きします。これをos.devnullに設定すると、すべての設定ファイルのロードが無効になります。これが設定されている場所にファイルが存在する場合、ユーザー設定ファイルはロードされないことに注意してください。

ロード順序

複数の設定ファイルが見つかった場合、pipは次の順序でそれらを結合します

  • グローバル

  • ユーザー

  • サイト

  • PIP_CONFIG_FILE、指定されている場合。

読み込まれた各ファイルは、前のファイルから読み込まれた値を上書きするため、グローバルファイルとユーザーごとのファイルの両方でグローバルタイムアウトが指定されている場合、後者の値が使用されます。

命名

設定の名前は、長いコマンドラインオプションから派生します。

例として、別のパッケージインデックス(--index-url)を使用し、HTTPタイムアウト(--timeout)を60秒に設定する場合は、設定ファイルは次のようになります

[global]
timeout = 60
index-url = https://download.zope.org/ppix

コマンドごとのセクション

各サブコマンドは、必要に応じて独自のセクションで設定できます。これにより、同じ名前のグローバル設定が上書きされます。

例として、pip freezeを実行するときにtimeout10秒に減らし、他のすべてのコマンドでは60秒を使用する場合

[global]
timeout = 60

[freeze]
timeout = 10

ブールオプション

--ignore-installed--no-dependenciesなどのブールオプションは、次のように設定できます。

[install]
ignore-installed = true
no-dependencies = yes

ブールオプション--no-compile--no-warn-script-location--no-cache-dirを有効にするには、偽の値を使用する必要があります。

[global]
no-cache-dir = false

[install]
no-compile = no
no-warn-script-location = false

反復可能なオプション

--verbose--quietのように繰り返すことができるオプションの場合は、指定するレベルを表すために非負の整数を使用できます。

[global]
quiet = 0
verbose = 2

設定ファイル内のセクションに値を追加できます。これは、複数行で記述できる--find-links--trusted-hostなどのオプションを追加する場合に適用できます。

[global]
find-links =
    http://download.example.com

[install]
find-links =
    http://mirror1.example.com
    http://mirror2.example.com

trusted-host =
    mirror1.example.com
    mirror2.example.com

これにより、ユーザーは、このようなコマンドライン引数の入力順序で追加の値を追加できます。

環境変数

pipのコマンドラインオプションは、形式PIP_<UPPER_LONG_NAME>を使用して環境変数で設定できます。ダッシュ(-)はアンダースコア(_)に置き換える必要があります。

  • PIP_TIMEOUT=60--timeout=60と同じです

  • PIP_FIND_LINKS="http://mirror1.example.com http://mirror2.example.com"
    

    は、次と同じです

    --find-links=http://mirror1.example.com --find-links=http://mirror2.example.com
    

値を取らない反復可能なオプション(--verbose など)は、繰り返しの回数で指定できます。

  • PIP_VERBOSE=3pip install -vvv と同じです。

注記

空の文字列に設定された環境変数(Unix での export X= など)は、false として扱われません。nofalse、または 0 を代わりに使用してください。

優先順位 / 上書き順序

コマンドラインオプションは環境変数を上書きし、環境変数は設定ファイル内の値を上書きします。設定ファイル内では、コマンド固有のセクションの値がグローバルセクションの値を上書きします。

  • --host=fooPIP_HOST=foo を上書きします。

  • PIP_HOST=foo は、設定ファイル内の [global] host = foo を上書きします。

  • 設定ファイル内のコマンド固有のセクション [<command>] host = bar は、[global] 設定ファイルセクションの同じ名前のオプションを上書きします。