python - pip 8.1 的自定义 pip.conf 位置
问题描述
我使用 Python 3.5 和 pip 8.1.1 作为操作系统包的一部分管理一组 Ubuntu 16.04 服务器。服务器无法上网,pip
需要配置内部pypi镜像。
我有以下配置文件/home/hanxue/.config/pip/pip.conf
[global]
index-url = https://pypimirror/simple
cert = /etc/ssl/certs/ca-certificates.crt
不幸的是 pip 8.1.1 不读取位于~/.config/pip/pip.conf
. 只有 pip 版本 >10 及更高版本使用更一致的 XDG 路径~/.config/pip/pip.conf
我尝试设置PIP_CONFIG_FILE
环境变量,但 pip 8.1.1 没有选择它
$ PIP_CONFIG_FILE=/home/hanxue/.config/pip/pip.conf /usr/bin/pip3 search tensorflow
我知道我可以创建文件的副本~/.pip/pip.conf
来解决问题。但这是针对最终用户的,他们最终会得到 2 pip.conf
,从而在未来产生混乱。例如,编辑~/.pip/pip.conf
但发现 pip 19 / python 3.6 没有拾取设置。
如何让 pip 8.1 从非标准位置获取配置?
解决方案
pip 9.0 及更高版本
如果你现在使用的是最新版本的 pip,或者 9.0.0 以上的任何版本,配置文件应该是~/.config/pip/pip.conf
. 根据官方 pip 用户指南:
在 Unix 上,默认配置文件是:
$HOME/.config/pip/pip.conf
它尊重XDG_CONFIG_HOME
环境变量。在 macOS 上,配置文件是
$HOME/Library/Application Support/pip/pip.conf
if directory$HOME/Library/Application Support/pip
exists else$HOME/.config/pip/pip.conf
。在 Windows 上,配置文件是
%APPDATA%\pip\pip.ini
.
文档明确指出这$HOME/.pip/pip.conf
是一个遗留路径,并且pip 源中的配置文件功能类似地命名为 legacy。
pip 8.xx 及更早版本
$HOME/.config/pip/pip.conf
告诉 pip 你的配置文件位于PIP_CONFIG_FILE
环境变量中
$ PIP_CONFIG_FILE=~/.config/pip/pip.conf /usr/bin/pip3 install --user colorama
Collecting colorama
已经在 Ubuntu 16.04 上使用 pip 8.1.1 和在 CentOS 7.4 上使用 pip 8.1.2 进行了测试