Hey,
I've tried various install routes and all failed because of wheel (possibly linked to gcc).
Sadly, I don't understand the error message.
Note that the problem is similar to that reported by
Michel Ferre.
I am on ubuntu 20.04. I have anaconda3 with python 3.8.8. I already have dedalus (v2) conda installed and working fine.
The error message is this (all comments welcome!):
------------------------------------------------------------
Building wheels for collected packages: dedalus, py-cpuinfo
Building wheel for dedalus (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for dedalus (pyproject.toml) did not run successfully.
│ exit code: 1 ╰─> [188 lines of output]
Looking for mpi include path
Cannot find env var MPI_INCLUDE_PATH
Looking for mpi prefix
Found matching library in /home/joseph/anaconda3/envs/dedalus3/lib
Looking for fftw include path
Cannot find env var FFTW_INCLUDE_PATH
Looking for fftw prefix
Found matching library in /home/joseph/anaconda3/envs/dedalus3/lib
Looking for fftw library path
Cannot find env var FFTW_LIBRARY_PATH
Looking for fftw prefix
Found matching library in /home/joseph/anaconda3/envs/dedalus3/lib
Looking for mpi library path
Cannot find env var MPI_LIBRARY_PATH
Looking for mpi prefix
Found matching library in /home/joseph/anaconda3/envs/dedalus3/lib
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/dedalus
copying dedalus/dev.py -> build/lib.linux-x86_64-3.8/dedalus
copying dedalus/public.py -> build/lib.linux-x86_64-3.8/dedalus
copying dedalus/__main__.py -> build/lib.linux-x86_64-3.8/dedalus
copying dedalus/__init__.py -> build/lib.linux-x86_64-3.8/dedalus
creating build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/sphere_rossby_waves.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_ball.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_disk_pipe.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_cartesian.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_BVP_shell.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_ball_2.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_coords_2.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_lbvp_2d.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_disk_helmholtz.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/chunk_s2.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_coords.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_marti_dynamo.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_rbc2d.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/sphere_jets.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_rbc2d_firstorder.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_scalar_advection_shell.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_shell_dynamo.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_marti_conv.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/chunk_cart.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_scalar_advection_shell_diff.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_shell_conv.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_jacobi_legendre.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_scalar_advection_ball.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_ball_ncc_diffusion.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_timings.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_timings2.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_rbc.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_arithmetic.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_jacobi_basics.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/scratch.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/__init__.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_marti_hydro.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_BVP.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_marti_hydro_sim.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_fourier_integrate_trigpoly.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_marti_hydro_ball_shell.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_new_marti_conv_potential.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_disk_convection.py -> build/lib.linux-x86_64-3.8/d3_scratch
copying d3_scratch/test_jacobi_integrate_poly.py -> build/lib.linux-x86_64-3.8/d3_scratch
creating build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/operators.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/domain.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/spaces.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/arithmetic.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/solvers.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/vectorspaces.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/problems.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/system.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/field.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/evaluator.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/future.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/basis.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/transforms.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/distributor.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/timesteppers.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/coords.py -> build/lib.linux-x86_64-3.8/dedalus/core
copying dedalus/core/subsystems.py -> build/lib.linux-x86_64-3.8/dedalus/core
creating build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/parallel.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/clenshaw.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/config.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/progress.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/logging.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/post.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/cache.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/general.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/parsing.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/random_arrays.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/exceptions.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/jacobi.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/array.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/dispatch.py -> build/lib.linux-x86_64-3.8/dedalus/tools
copying dedalus/tools/plot_op.py -> build/lib.linux-x86_64-3.8/dedalus/tools
creating build/lib.linux-x86_64-3.8/dedalus/extras
copying dedalus/extras/plot_tools.py -> build/lib.linux-x86_64-3.8/dedalus/extras
copying dedalus/extras/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/extras
copying dedalus/extras/flow_tools.py -> build/lib.linux-x86_64-3.8/dedalus/extras
creating build/lib.linux-x86_64-3.8/dedalus/libraries
copying dedalus/libraries/matsolvers.py -> build/lib.linux-x86_64-3.8/dedalus/libraries
copying dedalus/libraries/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/libraries
creating build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_spherical_ncc.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_nlbvp.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_clenshaw.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_sphere2D_calculus.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/ball_diffusion_analytical_eigenvalues.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_lbvp.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_grid_operators.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_fourier_operators.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_spherical3D_operators.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_spherical3D_calculus.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_evp.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_spherical3D_arithmetic.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_jacobi_operators.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_polar2D_operators.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_disk_ncc.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_cartesian_operators.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_transforms.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_polar2D_calculus.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_output.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_cartesian_ncc.py -> build/lib.linux-x86_64-3.8/dedalus/tests
copying dedalus/tests/test_ivp.py -> build/lib.linux-x86_64-3.8/dedalus/tests
creating build/lib.linux-x86_64-3.8/dedalus/libraries/fftw
copying dedalus/libraries/fftw/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/fftw
creating build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/sphere_wrapper.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/operators.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/clenshaw.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/sphere.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/spin_operators.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/tuple_tools.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/annulus.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/zernike.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/jacobi.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/ball_wrapper.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/timesteppers.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/shell.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
copying dedalus/libraries/dedalus_sphere/old_intertwiner.py -> build/lib.linux-x86_64-3.8/dedalus/libraries/dedalus_sphere
creating build/lib.linux-x86_64-3.8/d3_scratch/special_functions
copying d3_scratch/special_functions/__init__.py -> build/lib.linux-x86_64-3.8/d3_scratch/special_functions
copying d3_scratch/special_functions/bessel.py -> build/lib.linux-x86_64-3.8/d3_scratch/special_functions
copying d3_scratch/special_functions/airy.py -> build/lib.linux-x86_64-3.8/d3_scratch/special_functions
copying dedalus/dedalus.cfg -> build/lib.linux-x86_64-3.8/dedalus
copying dedalus/examples.tar.gz -> build/lib.linux-x86_64-3.8/dedalus
running build_ext
building 'dedalus.libraries.fftw.fftw_wrappers' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/dedalus
creating build/temp.linux-x86_64-3.8/dedalus/libraries
creating build/temp.linux-x86_64-3.8/dedalus/libraries/fftw
/home/joseph/anaconda3/envs/dedalus3/bin/x86_64-conda-linux-gnu-cc -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/joseph/anaconda3/envs/dedalus3/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/joseph/anaconda3/envs/dedalus3/include -fPIC -Idedalus/libraries/fftw/ -I/tmp/pip-build-env-vxe64lg9/overlay/lib/python3.8/site-packages/numpy/core/include -I/tmp/pip-build-env-vxe64lg9/overlay/lib/python3.8/site-packages/mpi4py/include -I/home/joseph/anaconda3/envs/dedalus3/include -I/home/joseph/anaconda3/envs/dedalus3/include -I/home/joseph/anaconda3/envs/dedalus3/include/python3.8 -c dedalus/libraries/fftw/fftw_wrappers.c -o build/temp.linux-x86_64-3.8/dedalus/libraries/fftw/fftw_wrappers.o -DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -Wno-unused-function
dedalus/libraries/fftw/fftw_wrappers.c: In function '__pyx_pf_7dedalus_9libraries_4fftw_13fftw_wrappers_16R2RTransformBase___init__':
dedalus/libraries/fftw/fftw_wrappers.c:6637:164: warning: passing argument 7 of 'fftw_plan_guru_r2r' from incompatible pointer type [-Wincompatible-pointer-types]
6637 | __pyx_v_self->forward_plan = fftw_plan_guru_r2r(__pyx_v_trans_rank, __pyx_v_trans_struct, __pyx_v_vec_rank, __pyx_v_vec_struct_f, __pyx_v_gdata, __pyx_v_cdata, (&__pyx_v_self->kind_f), (__pyx_v_intflags | __pyx_e_7dedalus_9libraries_4fftw_10fftw_c_api_FFTW_DESTROY_INPUT));
| ~^~~~~~~~~~~~~~~~~~~~~~
| |
| int *
In file included from dedalus/libraries/fftw/fftw_wrappers.c:741:
/home/joseph/anaconda3/envs/dedalus3/include/fftw3.h:465:1: note: expected 'const fftw_r2r_kind *' {aka 'const enum fftw_r2r_kind_do_not_use_me *'} but argument is of type 'int *'
465 | FFTW_DEFINE_API(FFTW_MANGLE_DOUBLE, double, fftw_complex)
| ^~~~~~~~~~~~~~~
dedalus/libraries/fftw/fftw_wrappers.c:6646:165: warning: passing argument 7 of 'fftw_plan_guru_r2r' from incompatible pointer type [-Wincompatible-pointer-types]
6646 | __pyx_v_self->backward_plan = fftw_plan_guru_r2r(__pyx_v_trans_rank, __pyx_v_trans_struct, __pyx_v_vec_rank, __pyx_v_vec_struct_b, __pyx_v_cdata, __pyx_v_gdata, (&__pyx_v_self->kind_b), (__pyx_v_intflags | __pyx_e_7dedalus_9libraries_4fftw_10fftw_c_api_FFTW_DESTROY_INPUT));
| ~^~~~~~~~~~~~~~~~~~~~~~
| |
| int *
In file included from dedalus/libraries/fftw/fftw_wrappers.c:741:
/home/joseph/anaconda3/envs/dedalus3/include/fftw3.h:465:1: note: expected 'const fftw_r2r_kind *' {aka 'const enum fftw_r2r_kind_do_not_use_me *'} but argument is of type 'int *'
465 | FFTW_DEFINE_API(FFTW_MANGLE_DOUBLE, double, fftw_complex)
| ^~~~~~~~~~~~~~~
gcc -pthread -shared -B /home/joseph/anaconda3/envs/dedalus3/compiler_compat -L/home/joseph/anaconda3/envs/dedalus3/lib -Wl,-rpath=/home/joseph/anaconda3/envs/dedalus3/lib -Wl,--no-as-needed -Wl,--sysroot=/ -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,/home/joseph/anaconda3/envs/dedalus3/lib -Wl,-rpath-link,/home/joseph/anaconda3/envs/dedalus3/lib -L/home/joseph/anaconda3/envs/dedalus3/lib -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /home/joseph/anaconda3/envs/dedalus3/include -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /home/joseph/anaconda3/envs/dedalus3/include build/temp.linux-x86_64-3.8/dedalus/libraries/fftw/fftw_wrappers.o -L/home/joseph/anaconda3/envs/dedalus3/lib -L/home/joseph/anaconda3/envs/dedalus3/lib -Wl,--enable-new-dtags,-R/home/joseph/anaconda3/envs/dedalus3/lib -Wl,--enable-new-dtags,-R/home/joseph/anaconda3/envs/dedalus3/lib -lfftw3_mpi -lfftw3 -lm -o build/lib.linux-x86_64-3.8/dedalus/libraries/fftw/
fftw_wrappers.cpython-38-x86_64-linux-gnu.so /home/joseph/anaconda3/envs/dedalus3/compiler_compat/ld: cannot find /lib64/libpthread.so.0
/home/joseph/anaconda3/envs/dedalus3/compiler_compat/ld: cannot find /usr/lib64/libpthread_nonshared.a
collect2: error: ld returned 1 exit status
/tmp/pip-build-env-vxe64lg9/overlay/lib/python3.8/site-packages/setuptools/dist.py:505: UserWarning: Normalizing '3.0.0a' to '3.0.0a0'
warnings.warn(tmpl.format(**locals()))
error: command '/home/joseph/anaconda3/envs/dedalus3/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 dedalus Building wheel for py-cpuinfo (setup.py) ... done
Created wheel for py-cpuinfo: filename=py_cpuinfo-8.0.0-py3-none-any.whl size=22258 sha256=043f59096ce6d2f5f6cc8334d310627e9cc5870c03f632a5dc8f3645758cc3c7
Stored in directory: /tmp/pip-ephem-wheel-cache-k7t3c9cj/wheels/57/cb/6d/bab2257f26c5be4a96ff65c3d2a7122c96529b73773ee37f36
Successfully built py-cpuinfo
Failed to build dedalus
ERROR: Could not build wheels for dedalus, which is required to install pyproject.toml-based projects
Disabled threading by default in the environment
To make your changes take effect please reactivate your environment
To make your changes take effect please reactivate your environment
Installation complete in conda environment 'dedalus3'
Thanks !