【问题标题】:How to update/upgrade a package using pip?如何使用 pip 更新/升级包?
【发布时间】:2018-04-14 17:43:33
【问题描述】:

使用 pip 更新包的方法是什么? 那些不起作用:

pip update
pip upgrade

我知道这是一个简单的问题,但它是必需的,因为它不是那么容易找到(pip documentation 不会弹出,堆栈溢出的其他问题是相关的,但不完全是这样)

【问题讨论】:

    标签: python pip


    【解决方案1】:

    方法是

    pip install <package_name> --upgrade
    

    简而言之

    pip install <package_name> -U
    

    使用sudo 会要求输入您的root 密码以确认操作,但虽然很常见,但被认为是unsafe

    如果您没有 root 密码(如果您不是管理员),您可能应该使用 virtualenv

    您也可以使用用户标志仅在该用户上安装它。

    pip install <package_name> --upgrade --user
    

    【讨论】:

    • 但是如果我需要升级 Package 及其依赖项(f/e Flask)怎么办,这种方式也可以吗?
    • 默认是在需要时更新依赖项(仅)。所以,是的。在这里查看更多stackoverflow.com/questions/2861183/…
    【解决方案2】:

    对于非特定包和更通用的解决方案,您可以查看pip-review。检查哪些包可以/应该更新的工具。

    安装:

    $ pip install pip-review
    

    然后运行:

    $ pip-review --interactive
    requests==0.14.0 is available (you have 0.13.2)
    Upgrade now? [Y]es, [N]o, [A]ll, [Q]uit y
    

    【讨论】:

    • 虽然这不能直接回答问题,但它可能是某些人在查找此消息时实际寻找的内容。
    • 仅供参考,pip-review 需要先安装pip
    【解决方案3】:

    在终端使用此代码:

    python -m pip install --upgrade PAKAGE_NAME #instead of PAKAGE_NAME 
    

    例如我想更新 pip 包:

     python -m pip install --upgrade pip
    

    更多示例:

    python -m pip install --upgrade selenium
    python -m pip install --upgrade requests
    ...
    

    【讨论】:

      【解决方案4】:

      tl;dr 脚本来更新所有已安装的包

      如果您只想升级一个包,请参考@borgr 的answer。我经常发现一次升级我所有的软件包是必要的,或者至少是令人愉快的。目前,pip 本身并不支持该操作,但使用 sh 脚本就足够简单了。您使用pip listawk(或cuttail)和命令替换。我正常的单行是:

      for i in $(pip list -o | awk 'NR > 2 {print $1}'); do sudo pip install -U $i; done
      

      这将要求输入 root 密码。如果您无权访问它,pipvirtualenv--user 选项可能值得研究。

      【讨论】:

        【解决方案5】:
        import subprocess as sbp
        import pip
        pkgs = eval(str(sbp.run("pip3 list -o --format=json", shell=True,
                                 stdout=sbp.PIPE).stdout, encoding='utf-8'))
        for pkg in pkgs:
            sbp.run("pip3 install --upgrade " + pkg['name'], shell=True)
        

        另存为 xx.py
        然后运行 ​​Python3 xx.py
        环境:python3.5+ pip10.0+

        【讨论】:

          【解决方案6】:

          虽然跑题了,但可能会遇到希望更新 pip 本身的问题(请参阅here)。

          为Python3.4+升级pip,必须使用pip3,如下:

          sudo pip3 install pip --upgrade
          

          这将升级位于:/usr/local/lib/python3.X/dist-packages 的 pip

          否则,要升级 Python2.7 的 pip,您将使用 pip,如下所示:

          sudo pip install pip --upgrade
          

          这将升级位于:/usr/local/lib/python2.7/dist-packages 的 pip

          【讨论】:

          • 这不是 OP 所要求的。他问的是如何升级特定的包,而不是 PIP 本身。
          • 尽管如此,在这些其他答案中似乎有帮助
          猜你喜欢
          • 2019-03-05
          • 2018-04-26
          • 2011-02-12
          • 2011-04-18
          • 2019-03-20
          • 1970-01-01
          • 2011-02-21
          • 2020-02-13
          相关资源
          最近更新 更多