Pyarrow 在 Alpine 图像上安装失败

问题描述 投票:0回答:1

我正在尝试使用 docker 在 alpine 图像上安装 pyarrow。 Pyarrow 需要预安装 Arrow C++ 库,我已经先安装了 以下是 dockerfile:

FROM python:3.12-alpine

 RUN apk add --no-cache \
    build-base \
    cmake \
    boost-dev \
    zlib-dev \
    curl \
    bash \
    git \
    openssl-dev \
    py3-pip \
    py3-numpy \
    py3-wheel

RUN apk add --no-cache \
    apache-arrow-dev \
    py3-setuptools 

RUN apk add --no-cache \
    python3-dev \
    musl-dev \
    linux-headers

RUN git clone https://github.com/apache/arrow.git /arrow \
    && cd /arrow/cpp \
    && mkdir build \
    && cd build \
    && cmake .. \
    && make -j$(nproc) \
    && make install

ENV CMAKE_PREFIX_PATH="/usr/local/lib/cmake/Arrow"

RUN python3 -m ensurepip && \
    pip install --upgrade pip

RUN pip install pyarrow

但是,安装失败并出现以下错误消息:

错误:'Wrap'不是'arrow::py::{anonymous}::WrapBytes'

的成员

采取的步骤: 升级 Pip:确保 pip 版本至少为 19.0。 尝试预构建二进制文件:尝试安装不带 --no-binary 标志的 pyarrow。 指定版本:尝试安装特定版本的 pyarrow。 检查依赖项:确保安装了所有必要的系统依赖项。

如何才能在 Docker 容器中成功安装 pyarrow?我应该考虑哪些特定的依赖项或配置?

谢谢!

docker pip alpine-linux pyarrow apache-arrow
1个回答
0
投票

根据上面的建议,以下命令对我有用:

RUN git clone --no-checkout https://github.com/apache/arrow.git /arrow \
&& cd /arrow \
&& git checkout tags/apache-arrow-17.0.0 \
&& cd cpp \
&& mkdir build \
&& cd build \
&& cmake -DARROW_CSV=ON -DARROW_JSON=ON -DARROW_FILESYSTEM=ON .. \
&& make -j$(nproc) \
&& make install
© www.soinside.com 2019 - 2024. All rights reserved.