如何使用 pip 或 pip3 正确地将所有 python 模块升级到最新稳定版本?

如何使用 pip 或 pip3 正确地将所有 python 模块升级到最新稳定版本?

让我们假设我们已经在系统上安装了python-pip并获取了python-pip3软件包。pippip3

据我所知pippypi.org。我期望它们具有与apt updateapt upgrade和类似的功能apt dist-upgrade

如何使用pip或正确地将所有 python 模块升级到最新稳定版本pip3

答案1

我已经在 pip2 和 pip3 上成功测试了这一点,尽管我不确定是否有更好的方法来做到这一点。

pip freeze | sed 's/==.*//' | xargs pip install -U

如果您只想升级安装到用户帐户而不是系统的软件包,您可能希望在和之后添加。--user如果您要升级系统 Python 软件包,则需要运行 with,否则您可能会遇到权限被拒绝的错误。pip freezepip installpip installsudo

答案2

这可能适用于旧版本的 pip:

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

答案3

pip 中没有像 Debian/Ubuntu 那样的“最新稳定”的概念。

Debian/Ubuntu 中的“最新稳定”软件包经过测试,可以与发行版中的所有其他软件包正确协同运行。

使用 pip,您可以升级所有 Python 模块,但您将把所有模块升级到存储库中可用的最新版本。您有责任验证一切是否仍能继续工作。由于新的错误或不兼容的更改,可能会出现问题。

因此,除非您准备好修复可能出现的故障,否则切勿使用 pip(选项:--system)升级操作系统提供的 python 模块。

升级用户环境中安装的所有模块非常有意义,或者最好在虚拟环境中升级。命令应该是:

pip freeze | awk '{print $1}' | xargs pip install -U

对于不同发行版和其他情况的用户,请检查:

pip help install

因为默认行为(没有 --user 或 --system 选项)从 Debian 衍生产品更改为标准 python。

答案4

以下是我在不使用的情况下升级本地安装的 pip 包(到用户的 $HOME 目录)的方法sudo

pip install --upgrade --user $(pip list --user | awk '{print $1}' | sed '1,2d')

这避免了手动升级 Wheel 和其他系统包等包,这可能会破坏您的设置。

相关内容