用pip升级所有软件包

是否可以一次性用pip升级所有Python包?

请注意,在官方问题跟踪器上有这项功能请求。


目前还没有内置标志,但可以使用

pip freeze --local | grep -v '^-e' | cut -d = -f 1  | xargs -n1 pip install -U

注意:这里有无限的潜在变化。 我试图保持这个答案简短,但请建议在评论中的变化!

相关修改:

  • 按照@jawache的建议(是的,您可以用sedawkperl或...替换grep + cut添加一个grep来跳过“-e”包定义。
  • 较新版本的pip允许您列出过期的软件包:

    pip list --outdated --format=freeze
    
  • xargs添加-n1 ,防止在更新一个包失败时停止所有操作(谢谢@andsens)


  • 你可以使用下面的Python代码。 与pip freeze不同,这不会打印警告和FIXME错误。

    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)
    

    升级所有本地软件包; 你可以使用pip-review

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

    pip-reviewpip-tools一个分支。 请参阅@knedlsepp提及的pip-tools问题。 pip-review软件包可以运行,但pip-tools软件包不再适用。

    pip-review从0.5版本开始在Windows上运行。

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

    上一篇: Upgrading all packages with pip

    下一篇: How can I develop for iPhone using a Windows development machine?