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)

Reply via email to