Wie man Dockerfile-Numba-Installation behebt: Unknown compiler(s): gfortran

Problem

Während eines Docker-Builds begegnen Sie dem folgenden Fehler beim Installieren des numba-Pakets mit pip install numba oder ähnlichem:

numba_gfortran_error.txt
../meson.build:84:0: ERROR: Unknown compiler(s): [['gfortran'], ['flang-new'], ['flang'], ['nvfortran'], ['pgfortran'], ['ifort'], ['ifx'], ['g95']]
The following exception(s) were encountered:
Running `gfortran --help` gave "[Errno 2] No such file or directory: 'gfortran'"
Running `gfortran --version` gave "[Errno 2] No such file or directory: 'gfortran'"
Running `gfortran -V` gave "[Errno 2] No such file or directory: 'gfortran'"
Running `flang-new --help` gave "[Errno 2] No such file or directory: 'flang-new'"
Running `flang-new --version` gave "[Errno 2] No such file or directory: 'flang-new'"
Running `flang-new -V` gave "[Errno 2] No such file or directory: 'flang-new'"
Running `flang --help` gave "[Errno 2] No such file or directory: 'flang'"
Running `flang --version` gave "[Errno 2] No such file or directory: 'flang'"
Running `flang -V` gave "[Errno 2] No such file or directory: 'flang'"
Running `nvfortran --help` gave "[Errno 2] No such file or directory: 'nvfortran'"
Running `nvfortran --version` gave "[Errno 2] No such file or directory: 'nvfortran'"
Running `nvfortran -V` gave "[Errno 2] No such file or directory: 'nvfortran'"
Running `pgfortran --help` gave "[Errno 2] No such file or directory: 'pgfortran'"
Running `pgfortran --version` gave "[Errno 2] No such file or directory: 'pgfortran'"
Running `pgfortran -V` gave "[Errno 2] No such file or directory: 'pgfortran'"
Running `ifort --help` gave "[Errno 2] No such file or directory: 'ifort'"
Running `ifort --version` gave "[Errno 2] No such file or directory: 'ifort'"
Running `ifort -V` gave "[Errno 2] No such file or directory: 'ifort'"
Running `ifx --help` gave "[Errno 2] No such file or directory: 'ifx'"
Running `ifx --version` gave "[Errno 2] No such file or directory: 'ifx'"
Running `ifx -V` gave "[Errno 2] No such file or directory: 'ifx'"
Running `g95 --help` gave "[Errno 2] No such file or directory: 'g95'"
Running `g95 --version` gave "[Errno 2] No such file or directory: 'g95'"
Running `g95 -V` gave "[Errno 2] No such file or directory: 'g95'"

A full log can be found at /tmp/pip-install-l_00fysc/scipy_f981fab0cf9a41a1bdc2d7886d06a66d/.mesonpy-0dhuk7ie/meson-logs/meson-log.txt
[end of output]

Lösung

Sie müssen das gfortran-Paket im Container installieren:

install_gfortran.sh
sudo apt -y install gfortran

Fügen Sie die folgende Zeile zu Ihrem Dockerfile hinzu (für deb-basierte Distributionen):

Dockerfile.numba
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y gfortran libopenblas-dev && rm -rf /var/lib/apt/lists/*

libopenblas-dev ist zusätzlich zu gfortran erforderlich, um numba zu bauen.


Check out similar posts by category: Python, Docker