Is it possible to upgrade all Python packages at one time with
Note: that there is a feature request for this on the official issue tracker.
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
For older versions of
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
grepis to skip editable (“-e”) package definitions, as suggested by @jawache. (Yes, you could replace
xargsprevents stopping everything if updating one package fails (thanks @andsens).
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!
You can use the following Python code. Unlike
pip freeze, this will not print warnings and FIXME errors.
For pip < 10.0.1
import pip from subprocess import call packages = [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_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)
To upgrade all local packages, you can install
$ pip install pip-review
After that, you can either upgrade the packages interactively:
$ pip-review --local --interactive
$ pip-review --local --auto
pip-review works on Windows since version 0.5.