Ubuntu 20.04 - 需要 Python 2 - 本机 Python 2 安装与其他选项相比如何?

Ubuntu 20.04 - 需要 Python 2 - 本机 Python 2 安装与其他选项相比如何?

我已经使用 Ubuntu 20.04 几个月了,一切进展顺利,但是最近我遇到了 2 个需要开始支持的遗留应用程序,它们需要 Python 2。据我所知,我至少有以下选择:

  • 返回 Ubuntu 18.04.5
  • 在 Ubuntu 20.04 中安装 Python 2
  • 尝试在 Ubuntu 20.04 中安装 Python 2,但仅限于虚拟环境中
  • 使用虚拟机

我宁愿远离 VM 选项,因为我经常使用 GPU,而 GPU 不会通过 VM,而且我做了很多硬件/软件接口,使用 VM 可能会导致各种问题。另外,我一般不喜欢 VM(崩溃、鼠标/键盘/屏幕卡顿、性能缓慢等)。

说实话,我很少使用虚拟环境,但我可以承认,我并不倾向于使用此选项,因为我将要支持的 2 个旧版应用程序会在各个地方调用 Python(调用启动新进程的文件等),我怀疑虚拟环境无法处理这些情况。此外,我还读过有关在虚拟环境中使用整个独立版本的 Python 的问题,例如如何在 Ubuntu 20.04 上创建 python2.7 虚拟环境

Ubuntu 18.04.5 很棒,但我现在不想回溯,这让我考虑安装 Python 2。在谷歌上快速搜索后,我发现很多网站解释了在 Ubuntu 20.04 中安装 Python 2 的步骤(例如https://linuxconfig.org/install-python-2-on-ubuntu-20-04-focal-fossa-linux或者https://www.vultr.com/docs/how-to-install-python-2-on-ubuntu-20-04),其中大多数甚至包括如何使用update-alternativespython默认设置为 Python 2 的说明,这对于我支持前面提到的遗留选项之一来说是必要的。

我觉得很奇怪,像安装整个其他版本的 Python 这样重要的事情不会对 Ubuntu 造成问题,因为当今许多 Linux 实用程序都使用 Python。另一方面,Python 2 是由 Canonical 提供的官方软件包https://packages.ubuntu.com/focal/python2而且他们通常非常擅长软件包集成。

目前我的问题是:

  1. 有谁在 Ubuntu 20.04 中安装了 Python 2 的人能解释一下这是否会导致问题吗?安装 Python 2 后,是否有一些常用应用程序无法运行?还有什么与此相关的“陷阱”我应该知道或注意吗?

  2. 如果我继续按照上述说明操作(update-alternativespython默认设置为 Python 2),是否会导致问题?与此附加步骤相关的任何“陷阱”是什么?

  3. 有人尝试过在 Ubuntu 中配置 Python 2 虚拟环境(无需安装 Python 2 本机环境)吗?它真的像这个页面一样简单吗?https://computingforgeeks.com/how-to-install-python2-with-virtualenv-on-ubuntu/听起来是这样的?虚拟环境是否能支持调用其他脚本、使用python(预计是 Python 2)、跨/分叉其他进程等重要应用程序?

  4. 如果 Ubuntu 20.04 上安装的原生 Python 2 和/或虚拟环境选项有问题,还有其他我没有在这里介绍的好选择吗?

答案1

  1. 有谁在 Ubuntu 20.04 中安装了 Python 2 的人能解释一下这是否会导致问题吗?安装 Python 2 后,是否有一些常用应用程序无法运行?还有什么与此相关的“陷阱”我应该知道或注意吗?

您可以这样做,但在不久的将来 Python 2 可能会出现问题 - 请关注我这篇文章的后面部分!

python2默认安装应该python等同于 Python 2 - 如果不是那么...

  1. 如果我继续按照上述说明操作(更新替代方法,使 Python 默认为 Python 2),是否可能导致问题?与此附加步骤相关的任何“陷阱”是什么?

已经有了此软件包 -python-is-python2就是您想要的。安装 Python 2 后安装它。它将处理 的python链接python2.7

  1. 有人尝试过在 Ubuntu 中配置 Python 2 虚拟环境(无需安装 Python 2 原生环境)吗?真的像这个页面一样简单吗?https://computingforgeeks.com/how-to-install-python2-with-virtualenv-on-ubuntu/听起来是这样的?虚拟环境是否能支持调用其他脚本、使用 Python(预计是 Python 2)、跨/分叉其他进程等重要应用程序?

我不使用普通的虚拟环境来获取与系统 Python 不同的 Python 安装。我使用派环境因为它会创建单独的 Python 用户空间安装。您将要需要构建依赖项pythonpython2.7安装-sudo apt build-dep python python2.7应该这样做。

  1. 如果 Ubuntu 20.04 上安装的原生 Python 2 和/或虚拟环境选项有问题,还有其他我没有在这里介绍的好选择吗?

无论是本机安装还是 PyEnv 方法都不会破坏任何东西。但您需要注意一些事项。

本质上... Python 2 已死 - 无论是上游还是 PyPA PIP(程序pip install ...

(注意:有些发行版可能提供有限的支持 Python 2,但一切仍然依赖 Python 2 且没有迁移到 Python 3 的东西都应该被反对)

从四天前开始,Python PIP 将不再支持 Python 2,其底层pip模块版本为 21.0。如果您按照 PyEnv 或单独的 Python 2 安装(与 System Python 分开)python-pip进行安装,你将无法再获取 Python 2 的 Python 模块

假设你正在处理一个遗留的 Python 2 程序,我强烈建议你为 Python 3 重写该程序。如果你必须维护这个遗留程序超过一两年(自 2020 年 EOL 日期以来),那么你将遇到大量问题 - 对 Python 2 的支持已在上游逐步淘汰,而 PIP 不再支持 Python 2,你将开始遇到一吨未来 Python 2 应用程序的维护将面临诸多问题。

为了最多程序将 Python 2 程序移植到 Python 3 并不是特别困难。如果你的依赖库(而不是底层的 Python 2 代码本身)仅有的Python 2 那么你将会遇到长期支持问题 - 你真的应该寻求替换/升级该过程。

相关内容