pip allows a user to change its behaviour via 3 mechanisms:
命令行选项
环境变量
configuration files
This page explains how the configuration files and environment variables work, and how they are related to pip’s various command line options.
Configuration files can change the default values for command line option. They are written using a standard INI style configuration files.
pip has 3 “levels” of configuration files:
global
: system-wide configuration file, shared across users.
user
: per-user configuration file.
site
: per-environment configuration file; i.e. per-virtualenv.
pip’s configuration files are located in fairly standard locations. This location is different on different operating systems, and has some additional complexity for backwards compatibility reasons.
In a “pip” subdirectory of any of the paths set in the environment variable
XDG_CONFIG_DIRS
(if it exists), for example
/etc/xdg/pip/pip.conf
.
This will be followed by loading
/etc/pip.conf
.
$HOME/.config/pip/pip.conf
, which respects the
XDG_CONFIG_HOME
环境变量。
The legacy “per-user” configuration file is also loaded, if it exists:
$HOME/.pip/pip.conf
.
$VIRTUAL_ENV/pip.conf
/Library/Application Support/pip/pip.conf
$HOME/Library/Application Support/pip/pip.conf
if directory
$HOME/Library/Application Support/pip
exists else
$HOME/.config/pip/pip.conf
The legacy “per-user” configuration file is also loaded, if it exists:
$HOME/.pip/pip.conf
.
$VIRTUAL_ENV/pip.conf
On Windows 7 and later:
C:\ProgramData\pip\pip.ini
(hidden but writeable)
On Windows Vista: Global configuration is not supported.
On Windows XP:
C:\Documents and Settings\All Users\Application Data\pip\pip.ini
%APPDATA%\pip\pip.ini
The legacy “per-user” configuration file is also loaded, if it exists:
%HOME%\pip\pip.ini
%VIRTUAL_ENV%\pip.ini
PIP_CONFIG_FILE
#
Additionally, the environment variable
PIP_CONFIG_FILE
can be used to specify a configuration file that’s loaded first, and whose values are overridden by the values set in the aforementioned files. Setting this to
os.devnull
disables the loading of
all
configuration files.
When multiple configuration files are found, pip combines them in the following order:
PIP_CONFIG_FILE
, if given.
Global
User
Site
Each file read overrides any values read from previous files, so if the global timeout is specified in both the global file and the per-user file then the latter value will be used.
The names of the settings are derived from the long command line option.
As an example, if you want to use a different package index (
--index-url
) and set the HTTP timeout (
--default-timeout
) to 60 seconds, your config file would look like this:
[global] timeout = 60 index-url = https://download.zope.org/ppix
Each subcommand can be configured optionally in its own section. This overrides the global setting with the same name.
As an example, if you want to decrease the
timeout
to
10
seconds when running the
pip freeze
, and use
60
seconds for all other commands:
[global] timeout = 60 [freeze] timeout = 10
Boolean options like
--ignore-installed
or
--no-dependencies
can be set like this:
[install] ignore-installed = true no-dependencies = yes
To enable the boolean options
--no-compile
,
--no-warn-script-location
and
--no-cache-dir
, falsy values have to be used:
[global] no-cache-dir = false [install] no-compile = no no-warn-script-location = false
For options which can be repeated like
--verbose
and
--quiet
, a non-negative integer can be used to represent the level to be specified:
[global] quiet = 0 verbose = 2
It is possible to append values to a section within a configuration file. This is applicable to appending options like
--find-links
or
--trusted-host
, which can be written on multiple lines:
[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
This enables users to add additional values in the order of entry for such command line arguments.
pip’s command line options can be set with environment variables using the format
PIP_<UPPER_LONG_NAME>
. Dashes (
-
) have to be replaced with underscores (
_
).
PIP_DEFAULT_TIMEOUT=60
如同
--default-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
Repeatable options that do not take a value (such as
--verbose
) can be specified using the number of repetitions:
PIP_VERBOSE=3
如同
pip install -vvv
注意
Environment variables set to an empty string (like with
export X=
on Unix) will
not
be treated as false. Use
no
,
false
or
0
代替。
Command line options have override environment variables, which override the values in a configuration file. Within the configuration file, values in command-specific sections over values in the global section.
范例:
--host=foo
overrides
PIP_HOST=foo
PIP_HOST=foo
overrides a config file with
[global] host = foo
A command specific section in the config file
[<command>] host = bar
overrides the option with same name in the
[global]
config file section.