Python 在arm64上使用numpy和pandas构建docker时出现问题
我试图用我的ARM64 rasperry pi中的docker compose构建一个docker形象,但这似乎是不可能的 这是我的dockerfile: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
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需要很长时间,大多数情况下树莓都会死亡。我会用我找到的解决方案来回答我自己的问题。