首页 > 解决方案 > 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 从非标准位置获取配置?

标签: pythonpython-3.xubuntupip

解决方案


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.confif directory $HOME/Library/Application Support/pipexists 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 进行了测试


推荐阅读