为什么 python3-pip 安装 python3.6 作为依赖项?

为什么 python3-pip 安装 python3.6 作为依赖项?

我在 Ubuntu 18.04 上;当我执行以下操作时,我希望为 python3.8 安装 pip:

apt update
apt install python3.8
ln -sf /usr/bin/python3.8 /usr/bin/python3
ln -sf /usr/bin/python3 /usr/bin/python


apt update
apt install python3-pip

但是安装时python3-pip它还会额外安装 python3.6、python3.6-dev、python3.6-minimal,这些真的需要吗?我打算在容器化环境中使用它们,因此有必要将图像大小保持在实际最小值。如何才能获得仅满足基本要求的 python3.8 + pip?

编辑:我知道我可以在来自 docker-hub 的 python:3.8 容器之上构建,但是这个问题适用于我需要在其他容器(例如 cuda)之上构建。

更新:对于 Ubuntu 16.04 或更早版本,我们需要将 deadsnakes PPA 添加到源中,而这apt-add-repository又需要python。因此,当我安装时,software-properties-common我最终

  1. 安装 python3.5
  2. 安装apt-add-repository
  3. 添加 deadsnakes PPA
  4. apt 更新
  5. 最后安装 python3.8——当我使用 Linux 设置桌面时这可能没问题,但对我来说这似乎对于容器来说有很多东西。

答案1

Ubuntu 的主要版本将其软件包的“主要”版本固定为发布时的新版本,以提供稳定的平台。例如,如果在 18.04.0 上编写的 Python 程序突然在 18.04.5 中停止运行,因为 Python 从 3.6 升级到 3.8,那就太糟糕了。

如果您无法使用官方 Python 镜像,需要 Python 3.8,并且无法使用 Focal/20.04(随 Python 3.8 一起提供),deadsnakes PPA 实际上是您唯一的选择。您不需要该apt-add-repository命令,因为您可以直接添加源并手动添加 GPG。如果您点击 PPA 主页上的“有关此 PPA 的技术详细信息”链接,它会为您提供相关的 sources.list/sources.list.d 条目以及添加存储库所需的 GPG 密钥 ID。

相关内容