0

Dear Community,

i am struggling with installing "mpi4py" on my Ubuntu 20.04 WSL. The error i am getting is the following:

pip install mpi4py
Defaulting to user installation because normal site-packages is not writeable
Collecting mpi4py
  Using cached mpi4py-3.1.4.tar.gz (2.5 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: mpi4py
  Building wheel for mpi4py (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for mpi4py (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [237 lines of output]
      running bdist_wheel
      running build
      running build_src
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-38
      creating build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/__main__.py -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/run.py -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/bench.py -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/__init__.py -> build/lib.linux-x86_64-cpython-38/mpi4py
      creating build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/__main__.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/_base.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/aplus.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/pool.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/_core.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/_lib.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/__init__.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/server.py -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      creating build/lib.linux-x86_64-cpython-38/mpi4py/util
      copying src/mpi4py/util/pkl5.py -> build/lib.linux-x86_64-cpython-38/mpi4py/util
      copying src/mpi4py/util/dtlib.py -> build/lib.linux-x86_64-cpython-38/mpi4py/util
      copying src/mpi4py/util/__init__.py -> build/lib.linux-x86_64-cpython-38/mpi4py/util
      copying src/mpi4py/py.typed -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/run.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/__main__.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/dl.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/__init__.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/MPI.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/bench.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/__init__.pxd -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/libmpi.pxd -> build/lib.linux-x86_64-cpython-38/mpi4py
      copying src/mpi4py/MPI.pxd -> build/lib.linux-x86_64-cpython-38/mpi4py
      creating build/lib.linux-x86_64-cpython-38/mpi4py/include
      creating build/lib.linux-x86_64-cpython-38/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.MPI_api.h -> build/lib.linux-x86_64-cpython-38/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.MPI.h -> build/lib.linux-x86_64-cpython-38/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.h -> build/lib.linux-x86_64-cpython-38/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi4py.i -> build/lib.linux-x86_64-cpython-38/mpi4py/include/mpi4py
      copying src/mpi4py/include/mpi4py/mpi.pxi -> build/lib.linux-x86_64-cpython-38/mpi4py/include/mpi4py
      copying src/mpi4py/futures/aplus.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/__main__.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/__init__.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/pool.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/_core.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/_lib.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/futures/server.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/futures
      copying src/mpi4py/util/dtlib.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/util
      copying src/mpi4py/util/pkl5.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/util
      copying src/mpi4py/util/__init__.pyi -> build/lib.linux-x86_64-cpython-38/mpi4py/util
      running build_clib
      MPI configuration: [mpi] from 'mpi.cfg'
      MPI C compiler:    /usr/bin/mpicc
      MPI C++ compiler:  /usr/bin/mpicxx
      MPI F compiler:    /usr/bin/mpifort
      MPI F90 compiler:  /usr/bin/mpif90
      MPI F77 compiler:  /usr/bin/mpif77
      checking for library 'lmpe' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -llmpe -o _configtest
      /usr/bin/ld: cannot find -llmpe
      collect2: error: ld returned 1 exit status
      failure.
      removing: _configtest.c _configtest.o
      building 'mpe' dylib library
      creating build/temp.linux-x86_64-cpython-38
      creating build/temp.linux-x86_64-cpython-38/src
      creating build/temp.linux-x86_64-cpython-38/src/lib-pmpi
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c src/lib-pmpi/mpe.c -o build/temp.linux-x86_64-cpython-38/src/lib-pmpi/mpe.o
      creating build/lib.linux-x86_64-cpython-38/mpi4py/lib-pmpi
      /usr/bin/mpicc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,--no-as-needed build/temp.linux-x86_64-cpython-38/src/lib-pmpi/mpe.o -o build/lib.linux-x86_64-cpython-38/mpi4py/lib-pmpi/libmpe.so
      checking for library 'vt-mpi' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -lvt-mpi -o _configtest
      /usr/bin/ld: cannot find -lvt-mpi
      collect2: error: ld returned 1 exit status
      failure.
      removing: _configtest.c _configtest.o
      checking for library 'vt.mpi' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -lvt.mpi -o _configtest
      /usr/bin/ld: cannot find -lvt.mpi
      collect2: error: ld returned 1 exit status
      failure.
      removing: _configtest.c _configtest.o
      building 'vt' dylib library
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c src/lib-pmpi/vt.c -o build/temp.linux-x86_64-cpython-38/src/lib-pmpi/vt.o
      /usr/bin/mpicc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,--no-as-needed build/temp.linux-x86_64-cpython-38/src/lib-pmpi/vt.o -o build/lib.linux-x86_64-cpython-38/mpi4py/lib-pmpi/libvt.so
      checking for library 'vt-mpi' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -lvt-mpi -o _configtest
      /usr/bin/ld: cannot find -lvt-mpi
      collect2: error: ld returned 1 exit status
      failure.
      removing: _configtest.c _configtest.o
      checking for library 'vt.mpi' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -lvt.mpi -o _configtest
      /usr/bin/ld: cannot find -lvt.mpi
      collect2: error: ld returned 1 exit status
      failure.
      removing: _configtest.c _configtest.o
      building 'vt-mpi' dylib library
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c src/lib-pmpi/vt-mpi.c -o build/temp.linux-x86_64-cpython-38/src/lib-pmpi/vt-mpi.o
      /usr/bin/mpicc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,--no-as-needed build/temp.linux-x86_64-cpython-38/src/lib-pmpi/vt-mpi.o -o build/lib.linux-x86_64-cpython-38/mpi4py/lib-pmpi/libvt-mpi.so
      checking for library 'vt-hyb' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -lvt-hyb -o _configtest
      /usr/bin/ld: cannot find -lvt-hyb
      collect2: error: ld returned 1 exit status
      failure.
      removing: _configtest.c _configtest.o
      checking for library 'vt.ompi' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -lvt.ompi -o _configtest
      /usr/bin/ld: cannot find -lvt.ompi
      collect2: error: ld returned 1 exit status
      failure.
      removing: _configtest.c _configtest.o
      building 'vt-hyb' dylib library
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -c src/lib-pmpi/vt-hyb.c -o build/temp.linux-x86_64-cpython-38/src/lib-pmpi/vt-hyb.o
      /usr/bin/mpicc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,--no-as-needed build/temp.linux-x86_64-cpython-38/src/lib-pmpi/vt-hyb.o -o build/lib.linux-x86_64-cpython-38/mpi4py/lib-pmpi/libvt-hyb.so
      running build_ext
      MPI configuration: [mpi] from 'mpi.cfg'
      MPI C compiler:    /usr/bin/mpicc
      MPI C++ compiler:  /usr/bin/mpicxx
      MPI F compiler:    /usr/bin/mpifort
      MPI F90 compiler:  /usr/bin/mpif90
      MPI F77 compiler:  /usr/bin/mpif77
      checking for dlopen() availability ...
      checking for header 'dlfcn.h' ...
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      success!
      checking for library 'dl' ...
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      x86_64-linux-gnu-gcc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -ldl -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'dlopen' ...
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      x86_64-linux-gnu-gcc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -ldl -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      building 'mpi4py.dl' extension
      x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/usr/include/python3.8 -c src/dynload.c -o build/temp.linux-x86_64-cpython-38/src/dynload.o
      src/dynload.c:5:10: fatal error: Python.h: No such file or directory
          5 | #include "Python.h"
            |          ^~~~~~~~~~
      compilation terminated.
      warning: build_ext: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

      warning: build_ext: building optional extension "mpi4py.dl" failed

      checking for MPI compile and link ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for missing MPI functions/symbols ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      checking for function 'MPI_Type_create_f90_integer' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Type_create_f90_real' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Type_create_f90_complex' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Status_c2f' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'MPI_Status_f2c' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for symbol 'MPI_LB' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      _configtest.c: In function ‘main’:
      _configtest.c:5:23: error: ‘MPI_LB’ undeclared (first use in this function); did you mean ‘MPI_IO’?
          5 |   MPI_Datatype s; s = MPI_LB; (void)s;
            |                       ^~~~~~
            |                       MPI_IO
      _configtest.c:5:23: note: each undeclared identifier is reported only once for each function it appears in
      failure.
      removing: _configtest.c _configtest.o
      checking for symbol 'MPI_UB' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      _configtest.c: In function ‘main’:
      _configtest.c:5:23: error: ‘MPI_UB’ undeclared (first use in this function); did you mean ‘MPI_IO’?
          5 |   MPI_Datatype s; s = MPI_UB; (void)s;
            |                       ^~~~~~
            |                       MPI_IO
      _configtest.c:5:23: note: each undeclared identifier is reported only once for each function it appears in
      failure.
      removing: _configtest.c _configtest.o
      checking for dlopen() availability ...
      checking for header 'dlfcn.h' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      success!
      removing: _configtest.c _configtest.o
      success!
      checking for library 'dl' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -ldl -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      checking for function 'dlopen' ...
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/usr/include/python3.8 -c _configtest.c -o _configtest.o
      /usr/bin/mpicc -pthread _configtest.o -Lbuild/temp.linux-x86_64-cpython-38 -ldl -o _configtest
      success!
      removing: _configtest.c _configtest.o _configtest
      building 'mpi4py.MPI' extension
      /usr/bin/mpicc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DPyMPI_MISSING_MPI_LB=1 -DPyMPI_MISSING_MPI_UB=1 -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -I/usr/include/python3.8 -c src/MPI.c -o build/temp.linux-x86_64-cpython-38/src/MPI.o
      In file included from src/MPI.c:4:
      src/mpi4py.MPI.c:6:10: fatal error: Python.h: No such file or directory
          6 | #include "Python.h"
            |          ^~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/mpicc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for mpi4py
Failed to build mpi4py
ERROR: Could not build wheels for mpi4py, which is required to install pyproject.toml-based projects

What i have tried to far...

I have tried the following steps, updating the sub libraries but i still think there is a problem with the mpicc library.

  • sudo apt update
  • sudo apt upgrade
  • sudo apt install mpich
  • sudo apt install mpi-default-dev
  • sudo apt install libopenmpi-dev

I tried to install the mpi4py package with env MPICC=/usr/bin/mpicc python3.8 -m pip install --no-cache-dir mpi4py as well as just simple pip install mpi4py

Whatever i have tried, i always get the same error.

I think the enviroment variable for mpicc is set right as when calling mpi in the terminal i get typhint 'mpicc'.

LorenzH
  • 11
  • 1
  • I guess `mpi4py` is somehow getting confused since you use `mpich` but `Open MPI` header files. pick one implementation, install both binaries/libs/headers and remove the other one. – Gilles Gouaillardet Jul 01 '23 at 08:52
  • Rather than building it yourself, you could simply install it using Conda: https://anaconda.org/conda-forge/mpi4py – John Zwinck Jul 01 '23 at 10:00
  • 1
    The error "*fatal error: Python.h: No such file or directory*" should be fixed first: https://stackoverflow.com/a/21530768/7976758 Found in https://stackoverflow.com/search?q=%5Bpip%5D+fatal+error%3A+Python.h%3A+No+such+file+or+directory – phd Jul 01 '23 at 16:17

1 Answers1

0

@phd The answer you provided solved my issue. Thanks alot! Some header files in the python were missing.

sudo apt install python3-dev
LorenzH
  • 11
  • 1