ChatGPT解决这个技术问题 Extra ChatGPT

如何使用 pip 更新/升级包?

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

pip update
pip upgrade

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


b
borgr

方法是

pip install <package_name> --upgrade

或简而言之

pip install <package_name> -U

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

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

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

pip install <package_name> --upgrade --user

但是如果我需要升级 Package 及其依赖项(f/e Flask)怎么办,这种方式也可以吗?
默认情况下(仅)在需要时更新依赖项。所以,是的。在这里查看更多stackoverflow.com/questions/2861183/…
S
Stephen Rauch

对于非特定包和更通用的解决方案,您可以查看 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 安装 pip-review
m
mamal

在终端中使用此代码:

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
...

b
borgr

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 选项。


F
Fofdsf
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+


b
borgr

虽然离题,但可能会遇到希望更新 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 本身。
尽管如此,在这些其他答案中似乎有帮助
e
explogx

我使用以下行来更新我所有过时的软件包:

pip list --outdated --format=freeze | awk -F '==' '{print $1}' | xargs -n1 pip install -U

S
Sriram Krishnaswamy

在命令提示符下执行以下命令,

C:\Users\Owner\AppData\Local\Programs\Python\Python310>python -m pip install --upgrade pip

输出将如下所示,

Requirement already satisfied: pip in c:\users\owner\appdata\local\programs\python\python310\lib\site-packages (21.2.4)
Collecting pip
  Downloading pip-22.0.3-py3-none-any.whl (2.1 MB)
     |████████████████████████████████| 2.1 MB 3.3 MB/s
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.2.4
    Uninstalling pip-21.2.4:
      Successfully uninstalled pip-21.2.4
Successfully installed pip-22.0.3

嘿,欢迎来到堆栈溢出。首先,您提供的长路径不是通用的,因此会混淆其他人。其次,请注意,这并不能回答问题(需要更新包而不是 pip 本身)。最后,如果您回答了已回答的问题,请添加新信息或编辑当前答案。