python - 在 arm64 上使用 numpy 和 pandas 构建 docker 时出现问题
问题描述
我正在尝试在我的 ARM64 rasperry pi 中使用 docker-compose 构建一个 docker 映像,但这似乎是不可能的。
这是我的码头文件:
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 运行时,它给出了一个错误:“找不到模块 numpy”,对于 pandas 模块也是如此。
如果我尝试使用 pip 安装 numpy 和 pandas:
RUN pip install numpy pandas
它给了我一个错误,或者更常见的是,覆盆子只是被冻结了,我必须拔掉它才能恢复。
我已经尝试使用不同版本的 python 作为源图像,还使用了几个 ubuntu 图像并安装了 python。
知道如何在 docker 中为我的树莓派(ARM64)安装 numpy 和 pandas 吗?
谢谢
解决方案
问题似乎与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
推荐阅读
- powershell - 添加低于特定值的颜色代码以查看硬盘空间?
- java - 从接口定义中引用实现类
- scala - Scala:如果条件返回 Unit 作为类型
- aws-lambda - 如何告诉 boto3 lambda 调用使用指定的 iam 角色,而不是我的 aws 配置文件中的角色?
- matlab - 'Parfor' 不会让 Matlab 中的代码更快
- sql - 在 Django 中使用双键加入
- openstack - Openstack Neutron Linux Bridge MTU 1500 问题
- python - Python:将变量传递给另一个函数
- spring-boot - 在 Flux/Mono 反应管道之外抛出异常
- sas - 在 SAS 中合并 Proc GLM 的输出文件