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

requirements.txt包含cython但docker构建时pyarrow安装报未找到cython如何解决

问题根因

pip 执行pip install -r requirements.txt时默认会先完成全量依赖的下载、依赖树解析,再统一执行所有包的安装操作。即使cython在requirements.txt中的排序早于pyarrow,实际安装pyarrow(源码编译版本)时,cython还未完成写入系统路径,因此编译阶段无法找到已下载的Cython模块。
你当前使用Python3.6环境,pyarrow==5.0.0没有对应该环境的预编译wheel包,必须本地编译,因此需要提前准备好所有编译依赖。

解决方案
  • 方案1:拆分Dockerfile的pip安装步骤(最稳妥)
    将原有的单步安装指令拆分为两步,先单独安装编译依赖:
# 提前安装pyarrow编译所需依赖
RUN pip3 install --no-cache-dir cython==0.29 cmake
# 再安装其余依赖
RUN pip3 install --no-cache-dir -r requirements.txt

可同步删除requirements.txt中的cython、cmake声明,避免重复校验。

  • 方案2:补充系统级编译依赖(避免后续编译报错)
    如果基础镜像没有预装编译工具,可在pip安装前添加系统依赖安装步骤,debian/ubuntu系基础镜像指令如下:
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    libssl-dev \
    libffi-dev \
    libarrow-dev \
    && rm -rf /var/lib/apt/lists/*
  • 方案3:使用预编译wheel包(可选)
    如果不想进行本地编译,可以手动指定pyarrow对应Python3.6的预编译wheel源,跳过源码编译步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:24:08