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

Docker构建失败:requirements.txt安装jaxlib wheel包不兼容问题排查

解决Docker构建中pip安装依赖失败的问题

问题根源

报错里的jaxlib-0.3.22+cuda11.cudnn805-cp37-cp37m-manylinux2014_x86_64.whl是为Python 3.7编译的包(文件名中的cp37对应Python3.7),但你使用的是Python3.8基础镜像,版本不兼容。同时旧版pip(22.0.4)对包版本的识别存在缺陷,导致拉取了错误的jaxlib版本。这个jaxlib是你requirements.txt中某个依赖(大概率是tensorflow-datasets==4.6.0)间接引入的。

修复步骤

1. 先升级pip再安装依赖

修改Dockerfile,在安装依赖前将pip升级到最新版本,确保它能正确识别适配Python3.8的包:

FROM python:3.8

ADD requirements.txt /

# 先升级pip,避免版本兼容问题
RUN pip install --upgrade pip && pip install -r /requirements.txt

ADD text_classification.py /

ENV PYTHONUNBUFFERED=1

CMD [ "python", "./text_classification.py" ]

2. 手动指定jaxlib的兼容版本(可选)

如果升级pip后仍报错,直接在requirements.txt中添加适配Python3.8的jaxlib版本:

tensorflow-datasets==4.6.0
vega-datasets==0.9.0
scikit-learn==1.0.2
autograd==1.5
numpy==1.21.6
# 添加适配Python3.8的jaxlib版本
jaxlib==0.3.22

如果需要CUDA支持,可以查找对应cp38的cuda版本包,但升级pip后通常会自动匹配正确版本,优先尝试第一步即可。

3. 排查额外引入的依赖(可选)

报错中出现了en-core-web-sm的安装流程,但你的requirements.txt中并未声明该包,说明是其他依赖间接引入的。如果你的代码不需要这个spaCy模型,可以通过依赖树排查引入源头,或者添加对应版本的spaCy以匹配模型版本。

验证修改

完成修改后重新执行构建命令:

docker build . -f Dockerfile.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:05:22