Hi again,
I got an error trying to install dedalus-d3. Somehow I wonder whether this is because I should install
conda install -c cryoem fftw-mpi
as my current fftw is 3.3.8-nompi_hfc0cae8_1114; is "nompi" worrying?
Here is everything I did on my linux ubuntu 20.04 system (note that it's a virtual machine I run on windows 10 with oracle VM):
- I downloaded the github repository, extracted and went into the local directory.
- I activated conda, which is version 4.10.3.
- I conda installed pip (as which pip or pip3 did not return a pip package in miniconda3 but in /home)
- ompi_info returned Open MPI: 4.0.4 with prefix /home/louiscouston/miniconda3, so I used this to set the paths, i.e.
export MPI_PATH=/home/louiscouston/miniconda3
export FFTW_PATH=/home/louiscouston/miniconda3
- I first got an error, which I thought suggested I don't have fftw, so I did
conda install -c conda-forge fftw
but realized it only updated 3.3.8-nompi_h7f3a6c3_1111 --> 3.3.8-nompi_hfc0cae8_1114
- On attempting again to install, I got the error (full error below):
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
gcc -pthread -B /home/louiscouston/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Idedalus/libraries/fftw/ -I/tmp/pip-build-env-xrhgm_ft/overlay/lib/python3.8/site-packages/numpy/core/include -I/tmp/pip-build-env-xrhgm_ft/overlay/lib/python3.8/site-packages/mpi4py/include -I/home/louiscouston/miniconda3/include -I/home/louiscouston/miniconda3/include -I/home/louiscouston/miniconda3/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:675:10: fatal error: fftw3-mpi.h: No such file or directory
675 | #include "fftw3-mpi.h"
| ^~~~~~~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for dedalus
Failed to build dedalus
ERROR: Could not build wheels for dedalus which use PEP 517 and cannot be installed directly
Let me know if you see something I could change to make it work.
Thanks!
Louis
(base) louiscouston@louiscouston-VM:~/dedalus-d3$ pip3 install .
Processing /home/louiscouston/dedalus-d3
DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
pip 21.3 will remove support for this functionality. You can find discussion regarding this at
https://github.com/pypa/pip/issues/7555.
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting docopt
Using cached docopt-0.6.2-py2.py3-none-any.whl
Collecting pytest-benchmark
Using cached pytest_benchmark-3.4.1-py2.py3-none-any.whl (50 kB)
Collecting pytest
Using cached pytest-6.2.4-py3-none-any.whl (280 kB)
Collecting numexpr
Using cached numexpr-2.7.3-cp38-cp38-manylinux2010_x86_64.whl (473 kB)
Requirement already satisfied: mpi4py>=2.0.0 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from dedalus==2.1905) (3.0.3)
Collecting pytest-cov
Using cached pytest_cov-2.12.1-py2.py3-none-any.whl (20 kB)
Requirement already satisfied: numpy in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from dedalus==2.1905) (1.20.3)
Requirement already satisfied: scipy>=1.4.0 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from dedalus==2.1905) (1.6.2)
Requirement already satisfied: matplotlib in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from dedalus==2.1905) (3.3.4)
Collecting cython>=0.22
Using cached Cython-0.29.24-cp38-cp38-manylinux1_x86_64.whl (1.9 MB)
Requirement already satisfied: h5py>=2.6.0 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from dedalus==2.1905) (3.2.1)
Requirement already satisfied: python-dateutil>=2.1 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from matplotlib->dedalus==2.1905) (2.8.2)
Requirement already satisfied: pillow>=6.2.0 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from matplotlib->dedalus==2.1905) (8.3.1)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from matplotlib->dedalus==2.1905) (2.4.7)
Requirement already satisfied: kiwisolver>=1.0.1 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from matplotlib->dedalus==2.1905) (1.3.1)
Requirement already satisfied: cycler>=0.10 in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from matplotlib->dedalus==2.1905) (0.10.0)
Requirement already satisfied: six in /home/louiscouston/miniconda3/lib/python3.8/site-packages (from cycler>=0.10->matplotlib->dedalus==2.1905) (1.16.0)
Collecting packaging
Using cached packaging-21.0-py3-none-any.whl (40 kB)
Collecting toml
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting py>=1.8.2
Using cached py-1.10.0-py2.py3-none-any.whl (97 kB)
Collecting pluggy<1.0.0a1,>=0.12
Using cached pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
Collecting attrs>=19.2.0
Using cached attrs-21.2.0-py2.py3-none-any.whl (53 kB)
Collecting iniconfig
Using cached iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
Collecting py-cpuinfo
Using cached py_cpuinfo-8.0.0-py3-none-any.whl
Collecting coverage>=5.2.1
Using cached coverage-5.5-cp38-cp38-manylinux2010_x86_64.whl (245 kB)
Building wheels for collected packages: dedalus
Building wheel for dedalus (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /home/louiscouston/miniconda3/bin/python3.8 /home/louiscouston/miniconda3/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpopmwy0if
cwd: /tmp/pip-req-build-wgc4galr
Complete output (116 lines):
Looking for mpi include path
Cannot find env var MPI_INCLUDE_PATH
Looking for mpi prefix
Found env var MPI_PATH = /home/louiscouston/miniconda3
Looking for fftw include path
Cannot find env var FFTW_INCLUDE_PATH
Looking for fftw prefix
Found env var FFTW_PATH = /home/louiscouston/miniconda3
Looking for fftw library path
Cannot find env var FFTW_LIBRARY_PATH
Looking for fftw prefix
Found env var FFTW_PATH = /home/louiscouston/miniconda3
Looking for mpi library path
Cannot find env var MPI_LIBRARY_PATH
Looking for mpi prefix
Found env var MPI_PATH = /home/louiscouston/miniconda3
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/__init__.py -> build/lib.linux-x86_64-3.8/dedalus
copying dedalus/public.py -> build/lib.linux-x86_64-3.8/dedalus
creating 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_polar2D_operators.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_nlbvp.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_ncc_convo.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_spherical3D_arithmetic.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_spherical3D_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/__init__.py -> 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_ivp.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_fourier_operators.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_disk_ncc.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_evp.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_lbvp.py -> build/lib.linux-x86_64-3.8/dedalus/tests
creating 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/parsing.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/post.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/general.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/array.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/parallel.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
copying dedalus/tools/exceptions.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/clenshaw.py -> build/lib.linux-x86_64-3.8/dedalus/tools
creating build/lib.linux-x86_64-3.8/dedalus/libraries
copying dedalus/libraries/__init__.py -> build/lib.linux-x86_64-3.8/dedalus/libraries
copying dedalus/libraries/matsolvers.py -> build/lib.linux-x86_64-3.8/dedalus/libraries
creating 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/timesteppers.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/domain.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/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/distributor.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/arithmetic.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/problems.py -> 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/field.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/solvers.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/subsystems.py -> build/lib.linux-x86_64-3.8/dedalus/core
creating 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/spin_operators.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
copying dedalus/libraries/dedalus_sphere/shell.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/sphere_wrapper.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/zernike.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/jacobi.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/sphere.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
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
copying dedalus/dedalus.cfg -> 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
gcc -pthread -B /home/louiscouston/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Idedalus/libraries/fftw/ -I/tmp/pip-build-env-xrhgm_ft/overlay/lib/python3.8/site-packages/numpy/core/include -I/tmp/pip-build-env-xrhgm_ft/overlay/lib/python3.8/site-packages/mpi4py/include -I/home/louiscouston/miniconda3/include -I/home/louiscouston/miniconda3/include -I/home/louiscouston/miniconda3/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:675:10: fatal error: fftw3-mpi.h: No such file or directory
675 | #include "fftw3-mpi.h"
| ^~~~~~~~~~~~~
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Failed building wheel for dedalus
Failed to build dedalus
ERROR: Could not build wheels for dedalus which use PEP 517 and cannot be installed directly