Hi, I've tried several methods to mitigate this, but am unable to determine the root cause.
pip install kwant fails on a new install of ubuntu. I have an ARM cpu which I believe should be compatible, however, I always get the following error. Thanks for any help! Collecting kwant Using cached kwant-1.5.0.tar.gz (1.7 MB) Preparing metadata (setup.py) ... done Requirement already satisfied: numpy>=1.18.0 in ./miniconda3/lib/python3.12/site-packages (from kwant) (2.1.2) Collecting scipy!=1.6.1,>=1.3.0 (from kwant) Using cached scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB) Collecting tinyarray>=1.2.2 (from kwant) Using cached tinyarray-1.2.4-cp312-cp312-linux_x86_64.whl Using cached scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (40.8 MB) Building wheels for collected packages: kwant Building wheel for kwant (setup.py) ... error *error*: *subprocess-exited-with-error* × python setup.py bdist_wheel did not run successfully. │ exit code: *1* ╰─> [130 lines of output] running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-cpython-312 creating build/lib.linux-x86_64-cpython-312/kwant copying kwant/qsymm.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/_colormaps.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/_plotter.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/rmt.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/digest.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/_common.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/wraparound.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/version.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/kpm.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/lattice.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/system.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/_kwant_version.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/plotter.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/builder.py -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant creating build/lib.linux-x86_64-cpython-312/kwant/linalg copying kwant/linalg/cmumps.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg copying kwant/linalg/fortran_helpers.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg copying kwant/linalg/mumps.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg copying kwant/linalg/decomp_schur.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg copying kwant/linalg/lll.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg copying kwant/linalg/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg creating build/lib.linux-x86_64-cpython-312/kwant/graph copying kwant/graph/defs.py -> build/lib.linux-x86_64-cpython-312/kwant/graph copying kwant/graph/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/graph creating build/lib.linux-x86_64-cpython-312/kwant/physics copying kwant/physics/symmetry.py -> build/lib.linux-x86_64-cpython-312/kwant/physics copying kwant/physics/leads.py -> build/lib.linux-x86_64-cpython-312/kwant/physics copying kwant/physics/dispersion.py -> build/lib.linux-x86_64-cpython-312/kwant/physics copying kwant/physics/noise.py -> build/lib.linux-x86_64-cpython-312/kwant/physics copying kwant/physics/gauge.py -> build/lib.linux-x86_64-cpython-312/kwant/physics copying kwant/physics/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/physics creating build/lib.linux-x86_64-cpython-312/kwant/solvers copying kwant/solvers/common.py -> build/lib.linux-x86_64-cpython-312/kwant/solvers copying kwant/solvers/default.py -> build/lib.linux-x86_64-cpython-312/kwant/solvers copying kwant/solvers/mumps.py -> build/lib.linux-x86_64-cpython-312/kwant/solvers copying kwant/solvers/sparse.py -> build/lib.linux-x86_64-cpython-312/kwant/solvers copying kwant/solvers/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/solvers creating build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_operator.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_plotter.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_system.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_lattice.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_wraparound.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_qsymm.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_rmt.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_kpm.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_comprehensive.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/tests copying kwant/tests/test_builder.py -> build/lib.linux-x86_64-cpython-312/kwant/tests creating build/lib.linux-x86_64-cpython-312/kwant/continuum copying kwant/continuum/discretizer.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum copying kwant/continuum/landau_levels.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum copying kwant/continuum/_common.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum copying kwant/continuum/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum creating build/lib.linux-x86_64-cpython-312/kwant/linalg/tests copying kwant/linalg/tests/test_lll.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg/tests copying kwant/linalg/tests/_test_utils.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg/tests copying kwant/linalg/tests/test_linalg.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg/tests copying kwant/linalg/tests/test_mumps.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg/tests copying kwant/linalg/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/linalg/tests creating build/lib.linux-x86_64-cpython-312/kwant/graph/tests copying kwant/graph/tests/test_scotch.py -> build/lib.linux-x86_64-cpython-312/kwant/graph/tests copying kwant/graph/tests/test_core.py -> build/lib.linux-x86_64-cpython-312/kwant/graph/tests copying kwant/graph/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/graph/tests creating build/lib.linux-x86_64-cpython-312/kwant/physics/tests copying kwant/physics/tests/test_leads.py -> build/lib.linux-x86_64-cpython-312/kwant/physics/tests copying kwant/physics/tests/test_gauge.py -> build/lib.linux-x86_64-cpython-312/kwant/physics/tests copying kwant/physics/tests/test_noise.py -> build/lib.linux-x86_64-cpython-312/kwant/physics/tests copying kwant/physics/tests/test_dispersion.py -> build/lib.linux-x86_64-cpython-312/kwant/physics/tests copying kwant/physics/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/physics/tests copying kwant/physics/tests/test_symmetry.py -> build/lib.linux-x86_64-cpython-312/kwant/physics/tests creating build/lib.linux-x86_64-cpython-312/kwant/solvers/tests copying kwant/solvers/tests/test_solvers.py -> build/lib.linux-x86_64-cpython-312/kwant/solvers/tests copying kwant/solvers/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/solvers/tests creating build/lib.linux-x86_64-cpython-312/kwant/continuum/tests copying kwant/continuum/tests/test_discretizer.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum/tests copying kwant/continuum/tests/test_common.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum/tests copying kwant/continuum/tests/test_landau_levels.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum/tests copying kwant/continuum/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/kwant/continuum/tests copying kwant/operator.pxd -> build/lib.linux-x86_64-cpython-312/kwant copying kwant/linalg/cmumps.pxd -> build/lib.linux-x86_64-cpython-312/kwant/linalg copying kwant/graph/core.pxd -> build/lib.linux-x86_64-cpython-312/kwant/graph copying kwant/graph/defs.pxd -> build/lib.linux-x86_64-cpython-312/kwant/graph copying kwant/graph/c_scotch.pxd -> build/lib.linux-x86_64-cpython-312/kwant/graph copying kwant/graph/defs.h -> build/lib.linux-x86_64-cpython-312/kwant/graph running build_ext building 'kwant._system' extension creating build/temp.linux-x86_64-cpython-312 creating build/temp.linux-x86_64-cpython-312/kwant gcc -pthread -B /home/gavin-nop/miniconda3/compiler_compat -fno-strict-overflow -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /home/gavin-nop/miniconda3/include -fPIC -O2 -isystem /home/gavin-nop/miniconda3/include -fPIC -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -Ikwant/graph -I/home/gavin-nop/miniconda3/lib/python3.12/site-packages/numpy/_core/include -I/home/gavin-nop/miniconda3/include/python3.12 -c kwant/_system.c -o build/temp.linux-x86_64-cpython-312/kwant/_system.o In file included from /home/gavin-nop/miniconda3/include/python3.12/Python.h:38, from kwant/_system.c:47: kwant/_system.c: In function ‘__pyx_f_5numpy_PyDataType_SHAPE’: kwant/_system.c:20006:39: error: ‘PyArray_Descr’ {aka ‘struct _PyArray_Descr’} has no member named ‘subarray’ 20006 | __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); | ^~ /home/gavin-nop/miniconda3/include/python3.12/pyport.h:24:38: note: in definition of macro ‘_Py_CAST’ 24 | #define _Py_CAST(type, expr) ((type)(expr)) | ^~~~ /home/gavin-nop/miniconda3/include/python3.12/object.h:661:35: note: in expansion of macro ‘_PyObject_CAST’ 661 | # define Py_INCREF(op) Py_INCREF(_PyObject_CAST(op)) | ^~~~~~~~~~~~~~ kwant/_system.c:2356:27: note: in expansion of macro ‘Py_INCREF’ 2356 | #define __Pyx_INCREF(r) Py_INCREF(r) | ^~~~~~~~~ kwant/_system.c:20006:5: note: in expansion of macro ‘__Pyx_INCREF’ 20006 | __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); | ^~~~~~~~~~~~ kwant/_system.c:20007:36: error: ‘PyArray_Descr’ {aka ‘struct _PyArray_Descr’} has no member named ‘subarray’ 20007 | __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); | ^~ ************************************ Error ************************************ The compilation of Kwant has failed. Please examine the error message above and consult the installation instructions in README.rst. You might have to customize build.conf. Build configuration was: ['No MUMPS support'] ******************************************************************************* error: command '/usr/bin/gcc' 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 kwant Running setup.py clean for kwant Failed to build kwantERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (kwant)