pip 的配置文件 pip.conf 用来规定 pip 的行为,有哪些实用的配置项?配置文件一般放在什么地方生效? 本文简单介绍一下。
pip 的命令行选项
为了更好的理解 pip 的配置文件,我们有必要先来看看 pip 的命令行,本文使用的 pip 是 20.0.2 版本:
pip 的帮助文档可以用 pip -h 来查看:
$ pip -h
Usage:
pip <command> [options]
Commands:
install Install packages.
download Download packages.
... 此处省略 N 行
General Options:
-h, --help Show help.
--isolated Run pip in an isolated mode
... 此处省略 N 行
可以看到有一些选项,类似:--isolated,除了主命令的选项外,每个子命令也有命令行,比如:
$ pip install --help
.. 此处省略 N 行
Package Index Options:
-i, --index-url <url> Base URL of the Python Package Index
--extra-index-url <url> Extra URLs of package indexes to
... 此处省略 N 行
每个选项都有完整版本(前面有两个-号的)和简略版本(前面只有一个-号的)
在执行 pip 时,命令行里为这些选项赋值,比如:
$ pip install --extra-index-url https://some-url
如果选项太多,写在命令行里明显不方便,而且也不便于重复调用。这里就用到了配置文件 pip.conf
pip 的配置文件的作用
pip 的配置文件,就是为命令行选项赋值,采用完整版本的选项名称。比如:
extra-index-url = https://some-url
就等效于
$ pip install --extra-index-url https://some-url
pip 的配置文件的结构
pip.conf 是 *.ini 文件的结构,以子命令为章节名,除此之外,还有一个 global :
[global]
timeout = 60
[install]
timeout = 600
[freeze]
timeout = 6
[list]
format = columns
如果子命令的章节里没有规定,那么就取 global 节中的参数值。
布尔值,也就是开关的值,用 true/false 或者 yes/no 都可以
pip 的配置文件的例子
下面是一个 pip.conf 的例子:
[global]
index-url = http://some-index/pypi
extra-index-url = https://some-extra-index/pypi
https://another-extra-index/pypi
http://yet-another-extra-index/pypi
disable-pip-version-check = true
trusted-host = some-index
some-extra-index
another-extra-index
yet-another-extra-index
timeout = 600
retries = 10
[list]
format = columns
[freeze]
no-color = yes
pip 的配置文件的保存位置
有4个可能保存的位置:
- 任意位置,保存在环境变量
PIP_CONFIG_FILE中 - 系统级别:一般为
/etc/pip.conf - 用户级别:一般为
$HOME/.pip/pip.conf - 虚拟环境级别:一般为
$VIRTUAL_ENV/pip.conf,比如你用如下命令创建了一个虚拟环境:
$ python -m venv .venv
或者
$ python -m virtualenv .virtualenv
那么如果.venv/pip.conf或.virtualenv/pip.conf文件存在,就会被加载。
上面这 4 个保存位置,是按上述顺序逐级加载,如果有相同的参数名称, 后面加载的会覆盖前面的。
比如:
/etc/pip.conf 中设置了 timeout=10,$HOME/.pip/pip.conf 中设置了 timeout=60, 那么最终生效的是 timeout=60
各位读后有什么想法,请在下方留言吧!如果对本文有疑问或者寻求合作,欢迎 联系邮箱 。邮箱已到剪贴板
精彩评论
本站 是个人网站,采用 署名协议 CC-BY-NC 授权。
欢迎转载,请保留原文链接 https://www.lfhacks.com/tech/python-pip-config/ ,且不得用于商业用途。

