Skip to content
Switch branches/tags
Go to file
This branch is 167 commits ahead, 1350 commits behind jazzband:master.
Build status


Looking for a new maintainer! See

pip-review is a convenience wrapper around pip. It can list available updates by deferring to pip list --outdated. It can also automatically or interactively install available updates for you by deferring to pip install.

Example, report-only:

$ pip-review
requests==0.13.4 is available (you have 0.13.2)
redis==2.4.13 is available (you have 2.4.9)
rq==0.3.2 is available (you have 0.3.0)

Example, actually install everything:

$ pip-review --auto
... <pip install output>

Example, run interactively, ask to upgrade for each package:

$ pip-review --interactive
requests==0.14.0 is available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
redis==2.6.2 is available (you have 2.4.9)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit n
rq==0.3.2 is available (you have 0.3.0)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y

Run pip-review -h for a complete overview of the options.

Note: If you want to pin specific packages to prevent them from automatically being upgraded, you can use a constraint file (similar to requirements.txt):

$ export PIP_CONSTRAINT="${HOME}/constraints.txt

$ pip-review --auto

Set this variable in .bashrc or .zshenv to make it persistent. Alternatively, this option can be specified in pip.conf, e.g.:

  • Linux:
$ cat ~/.config/pip/pip.conf
constraint = /home/username/constraints.txt
  • Windows:
$ cat $HOME\AppData\Roaming\pip\pip.ini
constraint = '$HOME\Roaming\pip\constraints.txt'

The conf file are dependent of the user, so If you use multiple users you must define config file for each of them.

Since version 0.5, you can also invoke pip-review as python -m pip_review. This can be useful if you are using multiple versions of Python next to each other.

Before version 1.0, pip-review had its own logic for finding package updates instead of relying on pip list --outdated.

Like pip, pip-review updates all packages, including pip and pip-review.


To install, simply use pip:

$ pip install pip-review

Decide for yourself whether you want to install the tool system-wide, or inside a virtual env. Both are supported.


To test with your active Python version:

$ ./

To test under all (supported) Python versions:

$ tox

The tests run quite slow, since they actually interact with PyPI, which involves downloading packages, etc. So please be patient.


pip-review was originally part of pip-tools but has been discontinued as such. See Pin Your Packages by Vincent Driessen for the original introduction. Since there are still use cases, the tool now lives on as a separate package.