Config file

pip allows you to set all command line option defaults in a standard ini style config file.

The names and locations of the configuration files vary slightly across platforms.

  • On Unix and Mac OS X the configuration file is: $HOME/.pip/pip.conf
  • On Windows, the configuration file is: %HOME%\pip\pip.ini

You can set a custom path location for the config file using the environment variable PIP_CONFIG_FILE.

The names of the settings are derived from the long command line option, e.g. 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:

timeout = 60
index-url =

Each subcommand can be configured optionally in its own section so that every global setting with the same name will be overridden; e.g. decreasing the timeout to 10 seconds when running the freeze (Freezing Requirements) command and using 60 seconds for all other commands is possible with:

timeout = 60

timeout = 10

Boolean options like --ignore-installed or --no-dependencies can be set like this:

ignore-installed = true
no-dependencies = yes

Appending options like --find-links can be written on multiple lines:

find-links =

find-links =

Environment Variables

pip’s command line options can be set with environment variables using the format PIP_<UPPER_LONG_NAME> . Dashes (-) have to replaced with underscores (_).

For example, to set the default timeout:


This is the same as passing the option to pip directly:

pip --default-timeout=60 [...]

To set options that can be set multiple times on the command line, just add spaces in between values. For example:

export PIP_FIND_LINKS=""

is the same as calling:

pip install --find-links= --find-links=

Config Precedence

Command line options have precedence over environment variables, which have precedence over the config file.

Within the config file, command specific sections have precedence over 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

Command Completion

pip comes with support for command line completion in bash and zsh.

To setup for bash:

$ pip completion --bash >> ~/.profile

To setup for zsh:

$ pip completion --zsh >> ~/.zprofile

Alternatively, you can use the result of the completion command directly with the eval function of you shell, e.g. by adding the following to your startup file:

eval "`pip completion --bash`"

Table Of Contents

Previous topic

Internal Details

Next topic

Other tools

This Page