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

Docker部署Python代码时numpy与其他包版本依赖冲突求助

解决Docker部署Python时的Numpy依赖冲突问题

核心冲突分析

从报错信息看,根本矛盾在于两个包对Numpy的版本要求完全不兼容:

  • argilla 1.13.2 要求 numpy < 1.24.0
  • onnxruntime 1.15.1 要求 numpy >= 1.24.2
    你指定的numpy==1.23.5满足前者,但不满足后者,导致pip无法找到兼容的版本组合。

解决方案

方案1:降低onnxruntime版本到兼容Numpy<1.24的版本

onnxruntime 1.14.x系列支持numpy >=1.21.6且<1.24,刚好匹配argilla 1.13.2的要求。修改你的requirements.txt:

numpy==1.23.5
argilla==1.13.2
contourpy==1.1.0
langchain==0.0.200
layoutparser==0.3.4
matplotlib==3.7.1
numexpr==2.8.4
onnxruntime==1.14.3  # 替换为1.14.x版本

方案2:升级argilla到支持Numpy>=1.24的版本

argilla从1.14.0开始将Numpy依赖放宽到numpy <2.0,可以兼容onnxruntime 1.15.1的要求。修改requirements.txt:

numpy==1.24.2  # 或满足>=1.24.2的版本
argilla==1.14.0  # 升级到1.14.0及以上
contourpy==1.1.0
langchain==0.0.200
layoutparser==0.3.4
matplotlib==3.7.1
numexpr==2.8.4
onnxruntime==1.15.1

优化Docker构建(可选)

你的两阶段构建可以调整得更高效,避免复制冗余文件。修改后的Dockerfile示例:

# 构建阶段:安装依赖
FROM python:3.11 as builder
WORKDIR /app

# 安装编译依赖
RUN apt-get update && apt-get install -y build-essential && rm -rf /var/lib/apt/lists/*

# 复制依赖文件并安装
COPY requirements.txt .
RUN python -m venv venv
ENV PATH="/app/venv/bin:$PATH"
RUN pip install --no-cache-dir --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt

# 复制项目代码
COPY . .

# 运行阶段:仅复制必要文件
FROM python:3.11-slim
WORKDIR /app

# 复制虚拟环境和代码
COPY --from=builder /app/venv ./venv
COPY --from=builder /app/test.py ./test.py  # 仅复制需要运行的文件,减少镜像体积

# 设置环境变量
ENV PATH="/app/venv/bin:$PATH"

# 启动命令
CMD ["python", "./test.py"]

验证步骤

  1. 修改requirements.txt为上述任一方案的版本组合
  2. 重新构建镜像:docker build -t my-python-app .
  3. 运行容器测试:docker run my-python-app

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:42:04