Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A set of tools to keep your pinned Python dependencies fresh.
Python Perl Perl6
branch: master

Build status

pip-tools = pip-review + pip-dump

A set of two command line tools to help you keep your pip-based packages fresh, even when you've pinned them.

You do pin them, right?

pip-tools overview


pip-review checks PyPI and reports available updates. It uses the list of currently installed packages to check for updates, it does not use any requirements.txt

Example, report-only:

$ pip-review
requests==0.13.4 available (you have 0.13.2)
redis==2.4.13 available (you have 2.4.9)
rq==0.3.2 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 available (you have 0.13.2)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
redis==2.6.2 available (you have 2.4.9)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit n
rq==0.3.2 available (you have 0.3.0)
Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y


pip-dump dumps the exact versions of installed packages in your active environment to your requirements.txt file. If you have more than one file matching the *requirements.txt pattern (for example dev-requirements.txt), it will update each of them smartly.


$ cat requirements.txt
$ cat dev-requirements.txt
$ pip-dump
$ cat requirements.txt
$ cat dev-requirements.txt

Packages that you don't want to dump but want to have installed locally nonetheless can be put in an optional file called .pipignore.


To install, simply use pip:

$ pip install pip-tools

Decide for yourself whether you want to install the tools 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.

Flattr this

Something went wrong with that request. Please try again.