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)