我正在构建一个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示例中运行,所以我知道这些包可以下载和构建。
1条答案
按热度按时间ru9i0ody1#
要安装pandas v0.25.3,您需要使用numpy v1.18.5(我以前有1.19.5)。一旦我得到了正确版本的numpy,我就可以安装pandas和airflow了