先打个广告:欢迎关注我的公众号,参与 文史大挑战 趣味题目。使用方法见 这篇文章 。
正文开始:
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/ ,且不得用于商业用途。