Python Raspberry PI 上的 dockerfile 中带有 numpy 的脚本 - libf77blas.so.3 错误

Python script with numpy in dockerfile on Raspberry PI - libf77blas.so.3 error

我想 运行 我的 Raspberry PI 2 上的一个 Docker 容器和一个使用 numpy 的 Python 脚本。为此,我有以下 Docker 文件:

FROM python:3.7
COPY numpy_script.py /
RUN pip install numpy

CMD ["python", "numpy_script.py"]

但是当我想导入 numpy 时,我得到错误信息说 libf77blas.so.3 没有找到。 我也尝试用 www.piwheels.org 的轮子安装 numpy,但出现同样的错误。

Google 搜索显示我需要安装 liblapack3。为此,我需要如何修改我的 Docker 文件?


受 om-ha 的回答启发,这对我有用:

FROM python:3.7
COPY numpy_script.py /
RUN apt-get update \
    && apt-get -y install libatlas-base-dev \
    && pip install numpy

CMD ["python", "numpy_script.py"]

工作 Dockerfile

# Python image (debian-based)
FROM python:3.7

# Create working directory
WORKDIR /app

# Copy project files
COPY numpy_script.py numpy_script.py

# RUN command to update packages & install dependencies for the project
RUN apt-get update \
    && apt-get install -y \
    && pip install numpy

# Commands to run within the container
CMD ["python", "numpy_script.py"]

说明

  1. 您的 dockerfile 中有一个额外的尾随 \,这实际上用于多行 shell 命令。你可以看到这个使用在行动中 here。我在上面的回答中使用了这个。请注意最后一个 shell 命令(在本例中为 pip)不需要尾随 \,这是您显示的代码中发生的一个错误。
  2. 您可能应该通过 WORKDIR /app
  3. 使用工作目录
  4. 运行 apt-get update 只是为了确保一切都是最新的。
  5. 建议使用 && 将多个 shell 命令分组在一个 RUN 指令中。参见 best practices and

资源在此 dockerfile 中按使用顺序排序

  1. FROM
  2. WORKDIR
  3. COPY
  4. RUN
  5. CMD