How to fix Dockerfile numba install Unknown compiler(s): gfortran
Problem
During a Docker build, you encounter the following error while installing the numba
package using pip install numba
or similar:
../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]
Solution
You need to install the gfortran
package in the container:
sudo apt -y install gfortran
Add the following line to your Dockerfile
(for deb-based distributions):
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y gfortran libopenblas-dev && rm -rf /var/lib/apt/lists/*
libopenblas-dev
is required in addition to gfortran
to build numba
.
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow