Docker安装Python版本错误:CUDA镜像中3.10显示为3.8
问题分析与解决方案
核心问题
你的Dockerfile存在几个关键错误,导致最终运行的仍是Python 3.8:
- 软链接指向了系统默认的
python3(Ubuntu 20.04自带的3.8版本),而非你安装的python3.10 - 安装的
python3-pip对应系统默认Python 3.8,而非Python 3.10 - Poetry安装时使用的是
python3(3.8),导致后续环境绑定了旧版本
修正后的Dockerfile
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04 WORKDIR /app COPY . . # 更新源并安装Python3.10及对应pip RUN apt-get update && DEBIAN_FRONTEND=noninteractive \ apt-get install -y python3.10 python3.10-pip # 将python、python3软链接指向python3.10 RUN ln -fs /usr/bin/python3.10 /usr/bin/python3 && \ ln -fs /usr/bin/python3.10 /usr/bin/python # 确保pip3指向python3.10的pip RUN ln -fs /usr/bin/pip3.10 /usr/bin/pip3 # 用python3.10安装Poetry RUN curl -sSL https://install.python-poetry.org | python3.10 - --preview # 升级requests(此时pip3已对应3.10) RUN pip3 install --upgrade requests CMD ["python", "--version"]
关键修改说明
- 替换python3-pip为python3.10-pip:直接安装对应Python 3.10的pip工具,避免和系统默认版本混淆
- 修改软链接目标:直接将
python和python3链接到python3.10,确保全局调用的都是你安装的版本 - 指定Python3.10安装Poetry:避免Poetry绑定到旧版本Python环境
- 修正pip3软链接:确保
pip3命令也对应Python 3.10的包管理工具
额外验证步骤
构建镜像后,可临时进入容器检查版本:
docker run --rm -it <你的镜像名> bash # 执行以下命令确认版本一致 python --version python3 --version pip3 --version
内容的提问来源于stack exchange,提问作者Sean
相关产品推荐
相关产品推荐

