How to upgrade all Python packages with pip
There isn't a built-in flag yet, but you can use
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
Note: there are infinite potential variations for this. I'm trying to keep this answer short and simple, but please do suggest variations in the comments!
In older version of
pip, you can use this instead:
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
grep is to skip editable ("-e") package definitions, as suggested by @jawache. (Yes, you could replace
-n1 flag for
xargs prevents stopping everything if updating one package fails (thanks @andsens).
You can use the following Python code. Unlike
pip freeze, this will not print warnings and FIXME errors.For pip < 10.0.1
import pipfrom subprocess import callpackages = [dist.project_name for dist in pip.get_installed_distributions()]call("pip install --upgrade " + ' '.join(packages), shell=True)
For pip >= 10.0.1
import pkg_resourcesfrom subprocess import callpackages = [dist.project_name for dist in pkg_resources.working_set]call("pip install --upgrade " + ' '.join(packages), shell=True)
To upgrade all local packages; you could use
$ pip install pip-review$ pip-review --local --interactive
pip-review works on Windows since version 0.5.