設定

pip 允許使用者透過 3 種機制來變更其行為

  • 命令列選項

  • 環境變數

  • 設定檔

此網頁說明設定檔和環境變數如何運作,以及它們與 pip 的各個命令列選項之間的關聯性。

另請參閱

pip config 命令,用於管理 pip 的設定。

設定檔

設定檔可以變更命令列選項的預設值。這些檔案使用標準 INI 格式撰寫。

pip 有 3 個設定檔案的「層級」

  • 全域:系統範圍設定檔,供所有使用者共用。

  • 使用者:每個使用者的設定檔。

  • 網站:每個環境的設定檔;亦即每個虛擬環境。

此外,也可以指定環境變數,這些變數會覆寫上述任何設定。

位置

pip 的設定檔位於標準位置。此位置在不同的作業系統上有所不同,而且出於後向相容性的原因,還會有一些其他複雜性。請注意,如果使用者設定檔同時存在於舊版和目前的位置中,則目前檔案中的值將會覆寫舊版檔案中的值。

全域

在環境變數 XDG_CONFIG_DIRS 中設定的任何路徑的「pip」子目錄(如果存在),例如 /etc/xdg/pip/pip.conf

接著載入 /etc/pip.conf

使用者

$HOME/.config/pip/pip.conf,會尊重 XDG_CONFIG_HOME 環境變數。

如果存在,也會載入舊版「每個使用者」的設定檔:$HOME/.pip/pip.conf

網站

$VIRTUAL_ENV/pip.conf

全域

/Library/Application Support/pip/pip.conf

使用者

$HOME/Library/Application Support/pip/pip.conf 如果目錄 $HOME/Library/Application Support/pip 存在,否則為 $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

如果「per-user」組態檔存在,也會載入:%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

逐指令部分

每個子指令可以選擇在自己的部分中進行組態。這將覆寫具有相同名稱的全域設定。

例如,如果您要將 timeout 減少到 10 秒以執行 pip freeze,並將所有其他指令使用 60

[global]
timeout = 60

[freeze]
timeout = 10

布林選項

布林選項(Boolean options),例如 --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=3 等於 pip install -vvv

注意

設定為空字串(例如在 Unix 系統上使用 export X=)的環境變數 不會 被視為 false。改用 nofalse0

優先順序 / 覆寫順序

命令列選項優先於環境變數,而環境變數又優先於設定檔中的值。在設定檔中,特定指令區段的值優先於全域區段的值。

範例

  • --host=foo 覆寫 PIP_HOST=foo

  • PIP_HOST=foo 覆寫設定檔為 [global] host = foo

  • 設定檔中的特定指令區段 [<command>] host = bar 覆寫 [global] 設定檔區段中同名的選項。