如何在Alpine linux上安装特定版本的python

如何在Alpine linux上安装特定版本的python

我用的是docker官方的码头工人图像并想安装python3.9.6

运行此命令会安装 python 3.10.x

apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python

我不知道如何指定我想要安装的 python 的确切版本。

请不要建议使用预装了 python 的 docker 镜像

答案1

您没有指定用于图像的标签https://hub.docker.com/_/docker,但你的问题指定了 Alpine,所以我会尝试解释一下。

在任何给定版本的 Alpine 中通常只有一个 Python 打包版本。

最近的Alpine v3.16 已打包 Python v3.10.5

你可以得到使用 Alpine 3.14 的 Python v3.9.5或者使用 Alpine 3.15 的 Python v3.9.13

我没有看到 Python v3.9.6 已针对任何版本的 Alpine 进行了打包。

您应该能够更改图像的标签https://hub.docker.com/_/docker以匹配所需的 Alpine 版本。

如果您确实需要使用 Python v3.9.6,您最好的选择可能是使用官方之一Docker Python 镜像3.9.6并指定标签之一

答案2

有一些虚拟环境软件包具有安装和管理不同版本的 Python 的功能。有些甚至可以一次安装多个版本并随意切换版本。

我在 Python 中使用的两个是virtualenvpyenv。它们是开源软件 (OSS) 项目,但安装步骤相当简单:

虚拟环境: https://pypi.org/project/virtualenv/
皮恩夫: https://github.com/pyenv/pyenv

答案3

我尝试了来自不同来源的许多答案,最终我复制了存储库文件并通过提取压缩文件来检查命名约定:

$ wget https://dl-cdn.alpinelinux.org/alpine/edge/main/aarch64/APKINDEX.tar.gz
$ tar -xvf  APKINDEX.tar.gz
$ cat APKINDEX | grep python3 

然后找到了这条线。

D:python3 python3~3.11

以及以下工作

apk --update --no-cache add python3~3.11   --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main 

相关内容