配置¶
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.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
如果存在,也会加载旧的“每个用户”配置文件:
%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 时将 timeout
降低到 10
秒,并将其他所有命令设置为 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=3
等同于pip install -vvv
注意
设置为空字符串的环境变量(如在 Unix 上使用 export X=
)不会被视为假值。请改用 no
、false
或 0
。
优先级/覆盖顺序¶
命令行选项覆盖环境变量,环境变量覆盖配置文件中的值。在配置文件中,命令特定部分中的值会覆盖全局部分中的值。
示例
--host=foo
覆盖PIP_HOST=foo
PIP_HOST=foo
覆盖具有[global] host = foo
的配置文件配置文件中命令特定的部分
[<command>] host = bar
会覆盖[global]
配置文件部分中同名选项。