如何删除和升级python

如何删除和升级python

我有个问题。

我不知道怎么做,但是我已经安装了 2 个版本的 python。

  1. Python 2.7
  2. Python 3.7

现在我的所有软件包都安装在 python 2.7(我正在使用的版本)中,但我想将所有内容升级到 python 3.7。最好的方法是什么?有人可以告诉我该怎么做吗?

答案1

在 Ubuntu 18.04 及更新版本中,默认安装 Python3,未安装 Python2。
该命令python仅指 Python2。请使用python3Py3 的命令。避免混淆。

使用 pip 时也是一样的:pip使用 Python 2,pip3使用 Python 3。

确保您已安装两个版本的 Pip。

    sudo apt install python-pip      // Python 2 example
    sudo apt install python3-pip     // See the difference?
  1. 列出已安装的 Python 2 (pip) 软件包

    pip freeze
    
  2. 安装 Python 3 版本

    pip3 install package another_package yet_another_package
    
  3. 卸载 Python 2 版本

    pip uninstall package another_package yet_another_package
    

使用 Pip 不会影响 debs 或其他类型的软件包。如果你安装了 Python 2 deb 软件包,那么你仍然安装它们。

答案2

如果你正在谈论安装的软件包pip,你不能升级它们,但是您必须使用pip与 Python 3 版本相对应的版本再次安装它们。

一般来说,您不应该将包安装到全局 Python 安装中,因为可能会出现依赖冲突。

您可以手动创建一个虚拟环境并在其中安装软件包,或者您可以使用类似的工具pipx,它会为每个已安装的软件包自动创建一个虚拟环境。

答案3

这不是一个真正的解决方案,但您可以同时使用两者。

在终端中运行python3而不是python 您可以在下载的最新版本中运行 python 3。对于软件包来说也是如此。通过运行pip3而不是pip您正在安装适用于 python 3 的软件包来安装软件包。当然,对于空闲和运行 python 脚本时也是如此

答案4

Ubuntu 18.04 及更高版本

  1. 将当前安装的所有 Python 2.7 包升级到 Python 3.7。

    1a. 安装 Synaptic 包管理器。

    sudo apt install synaptic
    

    1b. 打开 Synaptic,选择已安装在左侧窗格中,在搜索框中输入 python。

    在此处输入图片描述

    1c. 将通过 apt 安装的 Python 2 软件包升级到 Python 3。您可以在 Synaptic 界面中执行此操作。

    1d.卸载所有通过 pip 安装的 Python 包。

    pip freeze | xargs pip uninstall -y
    

    如果您不使用 sudo 或以 root 身份运行此命令,则不会卸载您可能需要的 pip 全局安装的任何软件包,但可能会留下一些由 root 全局安装sudo pippip以 root 身份运行的 Python 2 软件包。我建议您暂时保留这些由 root 全局安装sudo pippip以 root 身份运行的软件包,至少在您了解该pip freeze命令有多疯狂之前。

  2. 卸载 Python 2.7。

    sudo apt remove python2.7-minimal python2.7
    
  3. 安装 deborphan

    sudo apt install deborphan  
    
  4. 运行 deborphan

    deborphan
    
  5. 卸载所有孤立的 Python 2 包。如果 Synaptic 捕获了所有孤立的 Python 2 包,那么可能就不需要卸载它们了。

请注意,我尽可能使用 apt 代替 pip,因为我认为 pip 是一个蹩脚的借口,可以安装大量二流 Python 包,而从默认 Ubuntu 存储库安装的同样一流的 Python 包则不然。不要上当使用 pip 将每个已安装的 Python 包升级到 Python 3.7 的最新版本。如果您养成从默认 Ubuntu 存储库安装 Python 包的习惯,而不是使用 pip,您将避免陷入无望的复杂性。将 pip 与 sudo 一起使用是一个陷阱,您可以在 Python 虚拟环境中安装任何您想要的 Python 包,而无需 sudo。

相关内容