188

pip freeze shows me the packages installed, but how do I check against pypi which ones are outdated?

8 Answers 8

267

Since version 1.3, pip features a new command:

$ pip list --outdated
requests (Current: 1.1.0 Latest: 1.2.0)

See this post for more information.

14

Thing is, I never upgrade all packages. I upgrade only what I need, because projects may break.

Because there was no easy way to upgrade package by package and update the requirements.txt file, I wrote pip-upgrader which also updates the versions in your requirements.txt file for the packages chosen (or all packages).

Installation

pip install pip-upgrader

Usage

Activate your virtualenv (important, because it will also install the new versions of upgraded packages in the current virtualenv).

cd into your project directory, then run:

pip-upgrade

Advanced usage

If the requirements are placed in a non-standard location, send them as arguments:

pip-upgrade path/to/requirements.txt

If you already know what package you want to upgrade, simply send them as arguments:

pip-upgrade -p django -p celery -p dateutil

If you need to upgrade to pre-release / post-release version, add --prerelease argument to your command.

Full disclosure: I wrote this package.

0
7

Simple output:

pip list --outdated

enter image description here

See also docs on pip list --outdated option.

Pretty output:

pip install pip-check
pip-check

enter image description here

3

Perhaps pip-tools, available at https://github.com/nvie/pip-tools, might help you achieve what you want?

An example from the README:

$ 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
...
1
3

Use this pip fork:

https://github.com/dgladkov/pip

Which does exactly what you want using this command:

$ pip list --outdated
3
  • lol, thanks dsa. We both already commented on the fork before :)
    – Xster
    Apr 26, 2011 at 2:44
  • 1
    Unmaintained project Jan 2, 2020 at 15:52
  • 7
    Unmaintained 9-year-old fork. Avoid.
    – smci
    Jun 15, 2020 at 21:10
1

Similar to pip list --outdated but updates a requirements.txt file:

pur -r requirements.txt

PyPi: https://pypi.python.org/pypi/pur

GitHub: https://github.com/alanhamlett/pip-update-requirements

1
pip list --outdated | gawk -F ' ' 'NR>2{print$1}' | xargs pip install --upgrade

handy way to update all outdate package without install any extra package

alias pip-update='pip list --outdated | gawk -F ' ' 'NR>2{print$1}' | xargs pip install --upgrade'
0

Or you can

pip list --o

List installed packages, including editables. pip list

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.