Upgrading all packages with pip

Is it possible to upgrade all Python packages at one time with pip ?

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 freeze --local | 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!

Relevant edits:

  • Added a grep to skip "-e" package definitions, as suggested by @jawache (Yes, you could replace grep + cut with sed or awk or perl or...).
  • Newer versions of pip allow you to list outdated packages:

    pip list --outdated --format=freeze
    
  • Added -n1 to 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.

    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)
    

    To upgrade all local packages; you could use pip-review :

    $ pip install pip-review
    $ pip-review --local --interactive
    

    pip-review is a fork of pip-tools . See pip-tools issue mentioned by @knedlsepp. pip-review package works but pip-tools package no longer works.

    pip-review works on Windows since version 0.5.

    链接地址: http://www.djcxy.com/p/4476.html

    上一篇: 用pip安装特定的软件包版本

    下一篇: 用pip升级所有软件包