在使用python3.6.2的docker容器上安装pandas v0.25.3时出错,需要安装airflow v.1.10.2

k0pti3hp  于 2023-05-12  发布在  Python
关注(0)|答案(1)|浏览(243)

我正在构建一个docker容器,并试图让apache-airflow 1.10.2在ubuntu:18.04基础镜像上使用python 3.6.2构建。
我有一个Pipfile,我试图从python3.6.2虚拟环境中安装它。
下面是我正在构建的dockerfile:

FROM ubuntu:18.04

WORKDIR /app

# set the variables as per $(pyenv init -)
ENV LANG="C.UTF-8" \
    LC_ALL="C.UTF-8" 

RUN apt-get update &&  \
        apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        curl \
        git \
        libbz2-dev \
        libffi-dev \
        libncurses5-dev \
        libncursesw5-dev \
        libreadline-dev \
        libsqlite3-dev \
        libssl1.0-dev \
        liblzma-dev \
        # libssl-dev \
        llvm \
        make \
        netbase \
        pkg-config \
        # tk-dev \
        wget \
        xz-utils \
        zlib1g-dev \
        vim

RUN curl https://pyenv.run | bash && \
    echo 'export PATH="/root/.pyenv/bin:$PATH"' >> /root/.bashrc && \
    echo 'eval "$(pyenv init -)"' >> /root/.bashrc && \
    echo 'eval "$(pyenv virtualenv-init -)"' >> /root/.bashrc

ENV PATH="/root/.pyenv/bin:$PATH"

RUN eval "$(pyenv init -)" && \
    pyenv install 3.6.2 && \
    pyenv global 3.6.2

COPY . .
RUN pip install pipenv

CMD tail -f /dev/null

然后当我进入docker容器时,我运行pipenv shell来创建一个python虚拟环境,然后通过pip安装包。
我在尝试安装Pandas时收到以下错误消息,但我确实安装了numpy v1.19.5。

error: ‘NUMPY_IMPORT_ARRAY_RETVAL’ undeclared (first use in this function); did you mean ‘NPY_INOUT_ARRAY’?
       return NUMPY_IMPORT_ARRAY_RETVAL;
              ^~~~~~~~~~~~~~~~~~~~~~~~~
              NPY_INOUT_ARRAY
  pandas/_libs/src/ujson/python/objToJSON.c:181:12: note: each undeclared identifier is reported only once for each function it appears in
  pandas/_libs/src/ujson/python/objToJSON.c:182:1: warning: control reaches end of non-void function [-Wreturn-type]
   }
   ^
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pandas

任何关于下一步如何进行的建议都将是伟大的!
我尝试重新安装numpy,并再次构建一个新的docker容器,但这并不起作用。我在网上看到的大多数都是使用新版本的,但我需要用这些版本来构建,以模拟我的生产环境,然后我将在以后进行升级。这些airflow和pandas版本目前正在EC2示例中运行,所以我知道这些包可以下载和构建。

ru9i0ody

ru9i0ody1#

要安装pandas v0.25.3,您需要使用numpy v1.18.5(我以前有1.19.5)。一旦我得到了正确版本的numpy,我就可以安装pandas和airflow了

相关问题