我用的是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 中使用的两个是virtualenv
和pyenv
。它们是开源软件 (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