如何更新Python包?

tho*_*son 208 python packages

我正在运行Ubuntu 9:10,并安装了一个名为M2Crypto的软件包(版本为0.19.1).我需要下载,构建和安装最新版本的M2Crypto软件包(0.20.2).

0.19.1包具有多个位置的文件,包括(/ usr/share/pyshared和/usr/lib/pymodules.python2.6).

如何在安装0.20.2之前从我的系统中完全卸载0.19.1版本?

小智 415

我发现的最好方法是从终端运行此命令

sudo pip install [package_name] --upgrade
Run Code Online (Sandbox Code Playgroud)

sudo 将要求输入您的root密码以确认操作.

  • 我来这里是为了这个答案.我试过`pip update`和`pip upgrade`并且非常绝望,直到我在这里看到`--upgrade`.他们为什么不添加`pip upgrade`命令? (25认同)
  • 这确实是一个隐藏得很好的功能. (6认同)
  • 如果您使用没有身份验证的代理:sudo pip install [package] --upgrade --proxy = address:port (4认同)
  • 这应该是答案#1 (4认同)
  • 对于 Windows 用户:不需要 `sudo`。 (3认同)

Jer*_*ock 46

您可能希望查看像pip这样的Python包管理器.如果您不想使用Python包管理器,则应该能够通过旧安装下载M2Crypto并构建/编译/安装.

  • 谢谢。你说的有效。我构建并安装了 0.20.2,而无需卸载 0.19.1。 (2认同)

小智 44

要自动升级所有过时的软件包(使用pip安装),只需运行以下脚本,

pip install $(pip list --outdated | awk '{ print $1 }') --upgrade
Run Code Online (Sandbox Code Playgroud)

在这里,pip list --outdated将列出所有过时的包,然后我们将其管道到awk,因此它将只打印名称.然后,$(...)将使它成为一个变量然后,一切都自动完成.确保您拥有权限.(sudo如果你感到困惑,就把它放到pip之前)我会写一个名为的脚本,pip-upgrade 代码是下面的,

#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade
Run Code Online (Sandbox Code Playgroud)

然后使用以下几行脚本来准备它:

sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/
Run Code Online (Sandbox Code Playgroud)

然后,只要击中pip-upgrade瞧!

  • @TT较新版本的`pip`要求你使用`--format = legacy`选项,即`pip list --outdated --format = legacy`.另外,所有人:在许多Linux发行版中,通过pip盲目更新所有模块可能非常危险.他们中的许多人通过发行包提供特定的python模块,如果你更新狗屎,其中一些发行版(特别是RHEL)可能会破坏...更不用说如果你通过pip更新,发行包可能会恢复你的更改未来的更新. (6认同)
  • 为了在 Ubuntu 18.04 venv 上工作,请进行如下调整: `pip install $(pip list --outdated | tail +3 | grep -v sdist | awk '{ print $1 }') --upgrade` (2认同)

Hos*_*hin 33

  1. 通过Windows命令提示符,运行:pip list --outdated 您将获得过时包的列表.
  2. 运行:pip install [package] --upgrade 它将升级[package]并卸载以前的版本.

更新点子:

py -m pip install --upgrade pip
Run Code Online (Sandbox Code Playgroud)

同样,这将卸载以前版本的pip并将安装最新版本的pip.


小智 28

  • 方法1:逐个手动升级

pip install package_name -U
Run Code Online (Sandbox Code Playgroud)
  • 方法2:立即升级(如果某些程序包无法升级,则机会高回滚

pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
Run Code Online (Sandbox Code Playgroud)
  • 方法3:使用循环逐个升级

for i in  $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1); do pip install $i --upgrade; done
Run Code Online (Sandbox Code Playgroud)


Stu*_*ean 10

我认为最好的单线是:

pip install --upgrade <package>==<version>
Run Code Online (Sandbox Code Playgroud)


Ach*_*nha 9

使用pipupgrade

$ pip install pipupgrade
$ pipupgrade --latest --interactive
Run Code Online (Sandbox Code Playgroud)

pipupgrade可帮助您从requirements.txt文件升级系统,本地或软件包!它还有选择地升级不会破坏更改的软件包。与Python2.7 +,Python3.4 +和pip9 +,pip10 +,pip18 +兼容。

在此处输入图片说明

注意:我是该工具的作者。


小智 7

打开命令提示符或终端并使用以下语法

pip install --upgrade [package]==[specific version or latest version]
Run Code Online (Sandbox Code Playgroud)

例如

pip install --upgrade numpy==1.19.1
Run Code Online (Sandbox Code Playgroud)