You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

指定Python3.8后Docker仍安装Python3.6的问题求助

问题排查与解决方案

问题原因

  • 你的Dockerfile中创建的软链接ln -s /usr/bin/python3 /usr/bin/python,实际是将python指向了Ubuntu 18.04默认的Python3.6,而非你安装的Python3.8。
  • 安装的python3-pip是系统默认Python3.6对应的包管理工具,后续pip install的依赖会被安装到Python3.6的目录下,运行代码时自然触发Python3.6的弃用警告。

修改后的Dockerfile

FROM ubuntu:18.04

RUN apt-get update && \
    apt-get install -y software-properties-common && \
    add-apt-repository ppa:deadsnakes/ppa && apt-get update && apt-get install -y \
  python3.8 \
  python3.8-distutils \
  && rm -rf /var/lib/apt/lists/*

# 为Python3.8安装对应版本的pip
RUN python3.8 -m ensurepip --upgrade

# 将python和pip强制指向Python3.8版本
RUN ln -sf /usr/bin/python3.8 /usr/bin/python
RUN ln -sf /usr/local/bin/pip3.8 /usr/bin/pip

# 安装项目依赖
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

修改说明

  • 新增python3.8-distutils依赖:这是Python3.8运行ensurepip命令必需的组件,否则无法正常安装对应版本的pip。
  • 使用python3.8 -m ensurepip --upgrade安装Python3.8专属的pip,替代系统默认的python3-pip。
  • 软链接改用-f参数:强制覆盖原有指向Python3.6的软链接,确保python和pip命令默认调用Python3.8版本。

验证方式

构建镜像后,进入容器执行以下命令,确认版本正确:

python --version  # 应显示Python 3.8.x
pip --version     # 应显示对应Python3.8的pip版本

内容的提问来源于stack exchange,提问作者Lihka_nonem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:25:23