Python 在arm64上使用numpy和pandas构建docker时出现问题

Python 在arm64上使用numpy和pandas构建docker时出现问题,python,pandas,numpy,docker,arm64,Python,Pandas,Numpy,Docker,Arm64,我试图用我的ARM64 rasperry pi中的docker compose构建一个docker形象,但这似乎是不可能的 这是我的dockerfile: FROM python:3.6-slim RUN apt-get update && apt-get -y install python3-dev RUN apt-get -y install python3-numpy RUN apt-get -y install python3-pandas ENTRYPOINT

我试图用我的ARM64 rasperry pi中的docker compose构建一个docker形象,但这似乎是不可能的

这是我的dockerfile:

FROM python:3.6-slim

RUN apt-get update && apt-get -y install python3-dev 

RUN apt-get -y install python3-numpy
RUN apt-get -y install python3-pandas

ENTRYPOINT ["python3", "app.py"]
看起来还可以,但是当app.py运行时,它会给出一个错误:“Module numpy not found”,对于pandas模块也是如此

如果我尝试使用pip安装numpy和pandas:

RUN pip install numpy pandas
它给了我一个错误,或者更常见的是,覆盆子被冻住了,我必须拔掉它才能恢复

我试过使用不同版本的python作为源映像,也尝试过使用几个ubuntu映像并安装python

知道如何在docker中为我的raspberry pi(ARM64)安装numpy和pandas吗


谢谢

我建议创建
requirements.txt
文件。 在内部,您可以声明要安装的数据包

“Dockerfile”文件:

FROM python

COPY app.py /workdir/
COPY requirements.txt /workdir/

WORKDIR /workdir

RUN pip install --trusted-host pypi.python.org -r requirements.txt

CMD python app.py

编辑

我创建
Dockerfile
,导入pandas lib,然后检查它是否工作:

cat Dockerfile 
FROM python

COPY app.py /workdir/

WORKDIR /workdir

RUN python -m pip install pandas

CMD python app.py

问题似乎出在python版本上。我使用的是python3.6 docker映像,但python3 numpy和python3 pandas软件包都需要python3.5,因此在安装这些软件包时,还会安装新版本的python。这就是为什么当我试图导入这些模块时,python解释器找不到它们,因为它们是为另一个python版本安装的

最后,我用一个通用的docker debian映像解决了这个问题,并自己安装了python3.5,而不是使用python docker映像

FROM debian:stretch-slim

RUN apt-get update && apt-get -y dist-upgrade
RUN apt-get -y install build-essential libssl-dev libffi-dev python3.5 libblas3 libc6 liblapack3 gcc python3-dev python3-pip cython3
RUN apt-get -y install python3-numpy python3-sklearn
RUN apt-get -y install python3-pandas

COPY requirements.txt /tmp/

RUN pip3 install -r /tmp/requirements.txt

事实上,在我实际的dockerfile中,我使用的是requirements.txt文件。为了清楚起见,我没有在问题中使用它。无论如何,这不会改变任何事情。“Pip安装”(是否使用需求文件)不起作用。
dpkg-L python3 numpy
以查看您的python3路径中是否有numpy。这是一个复杂的环境。当然,尝试添加命令
运行pip3安装-U numpy
。您确定您的Raspberry Pi是ARM64吗?Raspberry Pi使用Raspbian作为32位操作系统是非常典型的。无论如何,这不是重点
pip安装对我来说很有效,但至少要等半个小时(即使是覆盆子pi3!),我不确定添加pandas是否会让这一时间增加到几个小时。如果您使用足够好的电源,并给予足够的时间,
pip
最终应该结束。是的,我确定。我在覆盆子上使用64位操作系统。无论如何,用pip安装pandas和numpy需要很长时间,大多数情况下树莓都会死亡。我会用我找到的解决方案来回答我自己的问题。