Ubuntu 20.04 - 需要 Python 2 - 本地 Python 2 安装与其他选项?

cda*_*hms 5 python-2.7 20.04

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

  • 回到 Ubuntu 18.04.5
  • 在 Ubuntu 20.04 中安装 Python 2
  • 尝试在 Ubuntu 20.04 中安装 Python 2,但只能在虚拟环境中安装
  • 使用虚拟机

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

老实说,我承认我很少使用虚拟环境,但是我可以说我不倾向于这个选项,因为我将支持的 2 个遗留应用程序在不同的地方调用 Python(调用新的文件)进程等),我怀疑虚拟环境将无法处理。此外,我还阅读了有关在虚拟环境中使用完整独立版本 Python 的问题,例如How to create python2.7 virtualenv on Ubuntu 20.04

Ubuntu 18.04.5 很棒,但我现在不想回溯,这让我不得不考虑安装 Python 2。在快速谷歌搜索后,我发现许多网站解释了在 Ubuntu 20.04 中安装 Python 2 的步骤(例如https: //linuxconfig.org/install-python-2-on-ubuntu-20-04-focal-fossa-linuxhttps://www.vultr.com/docs/how-to-install-python-2-on- Ubuntu的20-04),大部分的这些甚至还包括关于如何使用的指令update-alternatives,使python默认的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-alternatives为了使python默认到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 和/或虚拟环境选项有问题,是否还有其他我没有在这里介绍的好选项?

Tho*_*ard 10

  1. 在 Ubuntu 20.04 中安装了 Python 2 的任何人都可以澄清这是否会导致问题?是否有安装 Python 2 后无法运行的常见应用程序?我应该了解或注意与此相关的任何其他“问题”吗?

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

python2默认情况下安装应该python与 Python 2 等效 - 如果它不那么......

  1. 如果我继续上面的说明(更新替代品,使 python 默认为 Python 2)是否可能会导致问题?特别是与此附加步骤有关的任何“问题”?

已经有用于此的软件包 -python-is-python2就是您想要的软件包。安装,一旦你安装Python 2.这会处理的链接pythonpython2.7

  1. 有没有人在 Ubuntu 中尝试过 Python 2 虚拟环境配置(没有 Python 2 本机安装)?真的像这个页面https://computingforgeeks.com/how-to-install-python2-with-virtualenv-on-ubuntu/听起来那么简单吗?虚拟环境是否适用于支持调用其他脚本的重要应用程序、使用 python(期望它是 Python 2)、span/fork 其他进程等?

我不使用普通的 virtualenv 来获取与系统 Python 不同的 Python 安装。我为此使用PyEnv,因为它使 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 或独立于 System Python 的单独 Python 2 安装并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,那么你将遇到长期支持问题——而且你真的应该寻找更换/升级的过程。

  • @Voo 除非他们*需要*更新的 Python 模块 deps(甚至更旧的遗留模块),例如来自 PyPI,他们实际上正在逐步淘汰 Python 2 并且现在有一段时间 - 无论发行版如何,他们仍然会面临那个问题 - 最终旧的 PIP 版本将不再起作用。 (2认同)