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

在AWS SageMaker的Docker容器中Pip无法找到新版ML包

问题解决:Docker构建时无法找到mlforecast==0.13.1版本

问题原因

你的Docker基础镜像是ubuntu:18.04,其默认Python3版本为3.6,但mlforecast==0.13.1要求Python版本**>=3.8**。PyPI只会提供兼容目标Python版本的包,所以在Python3.6环境下,pip只能找到最高支持该版本的mlforecast==0.9.3,这就是版本限制的核心原因。

另外Dockerfile还存在两个额外问题:

  • 重复安装pandas:先指定了pandas==2.2.2,后面又无版本号安装pandas,会导致版本覆盖冲突
  • scipy==1.2.1和scikit-learn==0.20.2版本过旧,与pandas==2.2.2、torch==2.3.1等新版本包存在依赖兼容性问题

解决方案

1. 升级基础镜像

将基础镜像替换为支持Python3.8+的Ubuntu版本,比如ubuntu:22.04(默认Python3.10),确保满足mlforecast的版本要求。

2. 修复依赖安装命令

合并重复的包安装命令,更新旧版本依赖到兼容新版本的版本,避免冲突。

修改后的Dockerfile示例

FROM ubuntu:22.04

MAINTAINER Amazon AI <sage-learner@amazon.com>

RUN apt-get -y update && apt-get install -y --no-install-recommends \
         wget \
         python3-pip \
         python3-setuptools \
         nginx \
         ca-certificates \
    && rm -rf /var/lib/apt/lists/*

RUN ln -s /usr/bin/python3 /usr/bin/python
RUN ln -s /usr/bin/pip3 /usr/bin/pip

# 合并所有依赖安装,去掉重复的pandas,更新旧版本依赖到兼容版本
RUN pip --no-cache-dir install \
    mlforecast==0.13.1 \
    neuralforecast==1.7.3 \
    optuna==3.6.1 \
    pandas==2.2.2 \
    plotly==5.22.0 \
    statsforecast==1.7.6 \
    torch==2.3.1 \
    utilsforecast==0.1.12 \
    scipy==1.10.1 \
    scikit-learn==1.2.2 \
    flask \
    gunicorn

ENV PYTHONUNBUFFERED=TRUE
ENV PYTHONDONTWRITEBYTECODE=TRUE
ENV PATH="/opt/program:${PATH}"

COPY decision_trees /opt/program
WORKDIR /opt/program

关键修改说明

  • 基础镜像升级到ubuntu:22.04:提供Python3.10,满足mlforecast==0.13.1的Python版本要求
  • 合并pip安装命令:避免重复安装pandas导致版本覆盖
  • 更新scipy和scikit-learn版本:选择与pandas==2.2.2兼容的版本(scipy>=1.9.0、scikit-learn>=1.0)
  • 修正PATH环境变量:去掉多余的转义引号,确保路径配置正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:23:14