Fedora 系统 python3 解释器和制作 altinstall

Fedora system python3 interpreter and making altinstall

我正在设置 Fedora 31,因为我正在从 windows 进行切换,最后。我通过

安装了 python2.7

./configure --enable-optimizations make altinstall

方式。 This 描述了我们必须使用 altinstall 以便不覆盖/破坏系统 (fedora) 附带的 python 解释器。一切顺利,自定义 python2.7 安装。它位于 /usr/local/bin/python2.7 中,因此与系统的 python 不同,后者可能是 /usr/bin/python.

中的那个

现在我也想安装自定义 python3。我用谷歌搜索发现最快的方法是 dnf install python3 但令我惊讶的是它返回包 python3-3.7.5-1.fc31.x86_64 已经安装。而且我不记得安装它(如果它不包含在 "Development Tools" 中)

第一个问题:为什么Fedora自带系统python解释器?他们有什么用?另一个 python 名称与 sys py 完全相同但由于其 PATH 位置而较早发现的解释器是否会破坏事物?或者 sys py 只是用于 运行 一些 python 包含系统的 shebang 的脚本 python?

第二: 由于 已经位于 /usr/bin/python3 内,我想知道 Fedora 是否也附带了一个不应触及的系统 python3(因为 python2.7 将在几周内弃用)。

如果是,我可能应该编译另一个 python3,它应该在 /usr/local/bin/ 中,就像我的自定义 python2.7 一样。然而,doc 似乎会安装在 /usr/bin/ 中,但我不明白他们写的关于前缀的内容。

第三个问题:编译python3是否需要任何其他依赖项,因为this mentions builddep (zlib e.g.) but https://docs.python.org/3/using/unix.html不需要。

谢谢

Fedora 与大多数其他 Linux 发行版一样,提供使用多种语言编写的软件,包括 Python。如果想要 运行 Python 程序,则需要 Python 解释器,因此 Fedora 提供了一个。

通常,文件系统层次结构标准意味着供应商(例如 Linux 发行版)应该在 /usr/bin 中发布他们的解释器,所以 dnf install python3 安装标准的 Fedora python3包,其中提供 /usr/bin/python3。它已经安装,因为某些程序(可能 dnf 本身)需要它。

一般来说,发行版将他们脚本的 shebang 指定为解释器的绝对路径,而不是使用 /usr/bin/env,所以如果你选择安装 Python 的版本应该没问题像 /usr/local/bin 这样的地方。如果您使用来自其他来源的脚本,这些脚本确实使用 /usr/bin/env 但需要系统解释器,您可能 运行 会遇到问题。

如果您正在寻找在您的系统上构建 Python 3 所需的依赖项,最简单的查找方法是查看源包(在本例中为 Fedora 源 RPM)看看它有什么依赖关系。安装这些依赖项应该足以编译 Python 除非你选择使用不同的或非标准的选项来编译它。