I do not recommend the installation using virtualenv, as suggested in the CRPropa page. 99% of the time the installation is due to some incompatibility of libraries. Everything can be solved by passing the proper flags to CMake when installing. Below I show you what I do in my own laptop. It is not a general procedure, it does not work for everyone, but it should help most of you fix the problems that might arise. If you take a look at CMakeLists.txt, there are many items in capital letters. Many of those can be accessed when running `cmake .. ` as `cmake .. -DXXXXXXXXX`. Some of them are: . `FFTW3F_INCLUDE_DIR`: should point to the directory where `fftw3f.h` is located. . `FFTW3F_LIBRARY`: should point to the file libfftw3f.so (or .dylib, in the case of OS X) . `PYTHON_INCLUDE_PATH`: should point to where `Python.h` is located . `PYTHON_LIBRARY`: should point to the file libpython3.X.Y.so (or .dylib, in the case of OS X) . `PYTHON_EXECUTABLE`: should point to your python executable (e.g., `/bin/python3`) You can see the pattern for the other dependencies. First, I define my python environment. export PYTHON_VERSION_MAJOR=3 export PYTHON_VERSION_MINOR=11 export PYTHON_VERSION_PATCH=2 export PYTHON_VERSION=$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR.$PYTHON_VERSION_PATCH export PYTHON_DIR=/opt/homebrew/Cellar/ export PYTHON_EXECUTABLE=$PYTHON_DIR/bin/python3 For Mac OS X, I used the lines below. The OpenMP flags are needed if you are using the clang compiler. For GCC they are not needed. cmake .. -DCMAKE_INSTALL_PREFIX=$PWD -DBUILD_DOC=False -DDOWNLOAD_DATA=True -DSIMD_EXTENSIONS="none" -DFAST_WAVES=False -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE -DPYTHON_LIBRARY=$PYTHON_DIR/lib/libpython$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR.dylib -DPYTHON_INCLUDE_PATH=$PYTHON_DIR/include/python$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DOpenMP_CXX_FLAGS="-fopenmp -I$LLVM_DIR/lib/clang/$LLVM_VERSION/include" -DOpenMP_C_FLAGS="-fopenmp =libomp -I$LLVM_DIR/lib/clang/$LLVM_VERSION/include" -DOpenMP_libomp_LIBRARY=$LLVM_DIR/lib/libomp.dylib -DCMAKE_SHARED_LINKER_FLAGS="-L$LLVM_DIR/lib -lomp -Wl,-rpath,$LLVM_DIR/lib" -DOpenMP_C_LIB_NAMES=libomp -DOpenMP_CXX_LIB_NAMES=libomp -DINSTALL_EIGEN=True For Linux this is the general pattern. cmake .. -DCMAKE_INSTALL_PREFIX=$PWD -DBUILD_DOC=False -DDOWNLOAD_DATA=True -DPYTHON_EXECUTABLE=$PYTHON_EXECUTABLE -DPYTHON_LIBRARY=$PYTHON_DIR/lib/libpython$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR.dylib -DPYTHON_INCLUDE_PATH=$PYTHON_DIR/include/python$PYTHON_VERSION_MAJOR.$PYTHON_VERSION_MINOR -DSIMD_EXTENSIONS="none" -DFAST_WAVES=False `SIMD_EXTENSIONS` might be desired for some applications, so you might want to remove this flag and perhaps activate `FAST_WAVES`.