INSTALL: PETSCc and VTK error for Mac.
Closed this issue · 15 comments
Hello, I encounter an error during my installation of firedrake on a MacBook Pro 2020 with Sequoia version 15.1.
I have conda installed and I tried modifying my path as mentioned to work around the problem.
I have installed home brew to obtain python and all the requirements mentioned on the website and command tool installed and updated.
I start with the VTK error
As a first try I start the download with:
$(brew --prefix)/bin/python3 firedrake-install
but later got the error
'/Users/Marios/firedrake/bin/python -m pip install --no-build-isolation --no-binary mpi4py,randomgen,numpy -v vtk>=9.0.1' 2024-11-18 18:58:09,406 DEBUG Using pip 24.3.1 from /Users/Marios/firedrake/lib/python3.13/site-packages/pip (python 3.13) ERROR: Could not find a version that satisfies the requirement vtk>=9.0.1 (from versions: none) ERROR: No matching distribution found for vtk>=9.0.1
So i tried downloading mpi4py, randomgen and numpy. This approach sometimes worked but now it failed, as I have conducted multiple tries to download firedrake.
Now for the PETSc error
I removed everything and started from scratch with the option:
$(brew --prefix)/bin/python3 firedrake-install --no-vtk
and I got
Running firedrake-install --no-vtk
Installing command line tools...
Checking brew doctor...
Installing required packages via homebrew...
Required package 'gcc' is already installed via Homebrew.
Required package 'autoconf' is already installed via Homebrew.
Required package 'make' is already installed via Homebrew.
Required package 'automake' is already installed via Homebrew.
Required package 'cmake' is already installed via Homebrew.
Required package 'ninja' is already installed via Homebrew.
Required package 'libtool' is already installed via Homebrew.
Required package 'boost' is already installed via Homebrew.
Creating firedrake venv in '/Users/Marios/firedrake'.
BLAS config is {'BLAS': '/Users/Marios/firedrake/src/petsc/default', 'OPENBLAS': '/Users/Marios/firedrake/src/petsc/default', 'LDFLAGS': '-L/usr/local/opt/gcc/lib/gcc/14'}
Configuration saved to /Users/Marios/firedrake/.configuration.json
Cloning firedrake
Failed to clone firedrake using ssh, falling back to https.
Successfully cloned repository firedrake.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Creating firedrake-update script.
Cloning the dependencies of firedrake
Cloning ufl
Failed to clone ufl using ssh, falling back to https.
Successfully cloned repository ufl.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning fiat
Failed to clone fiat using ssh, falling back to https.
Successfully cloned repository fiat.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning FInAT
Failed to clone FInAT using ssh, falling back to https.
Successfully cloned repository FInAT.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning tsfc
Failed to clone tsfc using ssh, falling back to https.
Successfully cloned repository tsfc.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning PyOP2
Failed to clone PyOP2 using ssh, falling back to https.
Successfully cloned repository PyOP2.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning pyadjoint
Failed to clone pyadjoint using ssh, falling back to https.
Successfully cloned repository pyadjoint.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning petsc
Failed to clone petsc using ssh, falling back to https.
Successfully cloned repository petsc.
Checking out branch firedrake
Successfully checked out branch firedrake
Updating submodules.
Successfully updated submodules.
Cloning the dependencies of PyOP2
Cloning loopy
Failed to clone loopy using ssh, falling back to https.
Successfully cloned repository loopy.
Checking out branch main
Successfully checked out branch main
Updating submodules.
Successfully updated submodules.
Cloning pytest-mpi
Failed to clone pytest-mpi using ssh, falling back to https.
Successfully cloned repository pytest-mpi.
Checking out branch main
Successfully checked out branch main
Updating submodules.
Successfully updated submodules.
Installing petsc/
Depending on your platform, PETSc may take an hour or more to build!
Traceback (most recent call last):
File "/Users/Marios/firedrake-install", line 1822, in <module>
install("petsc/")
~~~~~~~^^^^^^^^^^
File "/Users/Marios/firedrake-install", line 1058, in install
build_and_install_petsc()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "/Users/Marios/firedrake-install", line 1170, in build_and_install_petsc
check_call([python, "./configure", "PETSC_DIR={}".format(petsc_dir), "PETSC_ARCH={}".format(petsc_arch)] + petsc_options)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Marios/firedrake-install", line 678, in check_call
log.debug(subprocess.check_output(arguments, stderr=subprocess.STDOUT, env=os.environ).decode())
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/python@3.13/3.13.0_1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 472, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**kwargs).stdout
^^^^^^^^^
File "/usr/local/Cellar/python@3.13/3.13.0_1/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 577, in run
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/Users/Marios/firedrake/bin/python', './configure', 'PETSC_DIR=/Users/Marios/firedrake/src/petsc', 'PETSC_ARCH=default', '--download-mpich', '--with-zlib', '--download-hypre', "--download-openblas-make-options='USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0'", '--LDFLAGS=-Wl,-ld_classic,-dead_strip_dylibs', '--download-hwloc-configure-arguments=--disable-opencl', '--download-bison', '--download-ptscotch', '--with-c2html=0', '--with-debugging=0', '--download-pastix', '--download-superlu_dist', '--download-openblas', '--with-x=0', '--with-shared-libraries=1', '--download-mumps', '--download-hdf5', '--download-scalapack', '--download-pnetcdf', '--download-netcdf', '--download-suitesparse', '--CFLAGS=-Wno-implicit-function-declaration', '--download-hwloc', '--download-metis', '--download-mpich-configure-arguments=--disable-opencl', '--with-fortran-bindings=0']' returned non-zero exit status 1.
Install log saved in /Users/Marios/firedrake-install.log
I attach both the firedrake-install.log and the PETSC.configuration file.
firedrake-install.log
Environment:
- OS: MacOS Sequoia version 15.1
- Python version: Python 3.13.0
Additional context
I tried also downloading firedrake without petsc and building it on my own. This got me on a weird path as later some error on cmake
libsupermesh
so I stopped because my knowledge is limited. Also when I configured petsc on my own I didn't have any issue. Also I would like to mention that I have used FeniCs and I didn't have a problem with the installation, if they are relating somehow or share a similarity regarding MPI.
Thanks in advance.
VTK wheel for python3.13 is not available yet. $(brew --prefix)/bin/python3.12 firedrake-install
is working.
Happily I have reason to believe that VTK wheels for Python 3.13 will exist within the next week or so.
https://gitlab.kitware.com/vtk/vtk/-/commit/7f96587dd0125ae57f7286f91a4601d8183c6b9a
Hi @Ig-dolci, @connorjward thank you for the immediate response. I run the command
$(brew --prefix)/bin/python3.12 firedrake-install
and got
Marios@christoss-MacBook-Pro ~ % echo $PATH
/usr/local/bin:/usr/local/sbin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin
Marios@christoss-MacBook-Pro ~ % $(brew --prefix)/bin/python3.12 firedrake-install
Running firedrake-install
Installing command line tools...
Checking brew doctor...
Installing required packages via homebrew...
Required package 'gcc' is already installed via Homebrew.
Required package 'autoconf' is already installed via Homebrew.
Required package 'make' is already installed via Homebrew.
Required package 'automake' is already installed via Homebrew.
Required package 'cmake' is already installed via Homebrew.
Required package 'ninja' is already installed via Homebrew.
Required package 'libtool' is already installed via Homebrew.
Required package 'boost' is already installed via Homebrew.
Creating firedrake venv in '/Users/Marios/firedrake'.
BLAS config is {'BLAS': '/Users/Marios/firedrake/src/petsc/default', 'OPENBLAS': '/Users/Marios/firedrake/src/petsc/default', 'LDFLAGS': '-L/usr/local/opt/gcc/lib/gcc/14'}
Configuration saved to /Users/Marios/firedrake/.configuration.json
Cloning firedrake
Failed to clone firedrake using ssh, falling back to https.
Successfully cloned repository firedrake.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Creating firedrake-update script.
Pip installing VTK to venv
Cloning the dependencies of firedrake
Cloning ufl
Failed to clone ufl using ssh, falling back to https.
Successfully cloned repository ufl.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning fiat
Failed to clone fiat using ssh, falling back to https.
Successfully cloned repository fiat.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning FInAT
Failed to clone FInAT using ssh, falling back to https.
Successfully cloned repository FInAT.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning tsfc
Failed to clone tsfc using ssh, falling back to https.
Successfully cloned repository tsfc.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning PyOP2
Failed to clone PyOP2 using ssh, falling back to https.
Successfully cloned repository PyOP2.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning pyadjoint
Failed to clone pyadjoint using ssh, falling back to https.
Successfully cloned repository pyadjoint.
Checking out branch master
Successfully checked out branch master
Updating submodules.
Successfully updated submodules.
Cloning petsc
Failed to clone petsc using ssh, falling back to https.
Successfully cloned repository petsc.
Checking out branch firedrake
Successfully checked out branch firedrake
Updating submodules.
Successfully updated submodules.
Cloning the dependencies of PyOP2
Cloning loopy
Failed to clone loopy using ssh, falling back to https.
Successfully cloned repository loopy.
Checking out branch main
Successfully checked out branch main
Updating submodules.
Successfully updated submodules.
Cloning pytest-mpi
Failed to clone pytest-mpi using ssh, falling back to https.
Successfully cloned repository pytest-mpi.
Checking out branch main
Successfully checked out branch main
Updating submodules.
Successfully updated submodules.
Installing petsc/
Depending on your platform, PETSc may take an hour or more to build!
Traceback (most recent call last):
File "/Users/Marios/firedrake-install", line 1822, in <module>
install("petsc/")
File "/Users/Marios/firedrake-install", line 1058, in install
build_and_install_petsc()
File "/Users/Marios/firedrake-install", line 1170, in build_and_install_petsc
check_call([python, "./configure", "PETSC_DIR={}".format(petsc_dir), "PETSC_ARCH={}".format(petsc_arch)] + petsc_options)
File "/Users/Marios/firedrake-install", line 678, in check_call
log.debug(subprocess.check_output(arguments, stderr=subprocess.STDOUT, env=os.environ).decode())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/Users/Marios/firedrake/bin/python', './configure', 'PETSC_DIR=/Users/Marios/firedrake/src/petsc', 'PETSC_ARCH=default', '--download-pnetcdf', '--download-suitesparse', '--download-pastix', '--download-ptscotch', '--download-scalapack', '--download-openblas', '--LDFLAGS=-Wl,-ld_classic,-dead_strip_dylibs', '--download-netcdf', '--download-hwloc-configure-arguments=--disable-opencl', '--with-zlib', '--download-metis', '--download-mpich', '--download-bison', '--download-mpich-configure-arguments=--disable-opencl', '--with-debugging=0', '--with-c2html=0', '--download-hdf5', '--download-superlu_dist', '--with-x=0', "--download-openblas-make-options='USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0'", '--CFLAGS=-Wno-implicit-function-declaration', '--download-hypre', '--with-fortran-bindings=0', '--download-hwloc', '--download-mumps', '--with-shared-libraries=1']' returned non-zero exit status 1.
Install log saved in /Users/Marios/firedrake-install.log
I attach the firedrake-install.log and PETSc_config.log
firedrake-install.log
configure.log
I notice that you have a slightly older version of xcode. Can you try updating it and trying again? You should also ensure that brew doctor
runs without spitting out any warnings.
@connorjward I have installed both open-mpi and mpich and I have linked only mpich.
Marios@christoss-MacBook-Pro ~ % brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!
Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
open-mpi
The xcode doesn't have any new updates. The version I have is this.
Marios@christoss-MacBook-Pro ~ % xcodebuild -version
Xcode 16.1
Build version 16B40
I am surprised by your log then. It says that you are using clang 15.0.0 whereas I believe with that xcode version it should say 16.0.0.
@connorjward Thank you for the immediate response, maybe I have configured something wrong? What can I do to fix this?
@connorjward Thank you for the immediate response, maybe I have configured something wrong? What can I do to fix this?
I'm not entirely sure. If you just updated xcode then perhaps you need to restart? What does gcc --version
return?
Marios@christoss-MacBook-Pro ~ % gcc --version
Apple clang version 16.0.0 (clang-1600.0.26.4)
Target: x86_64-apple-darwin24.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
That is weird as firedrake-install.log
includes
2024-11-19 12:20:02,463 DEBUG Python version: 3.12.7 (main, Oct 1 2024, 02:05:46) [Clang 15.0.0 (clang-1500.3.9.4)]
Can you try running brew upgrade
?
@connorjward Sorry for the late response. I run brew upgrade
Marios@christoss-MacBook-Pro ~ % brew update
==> Updating Homebrew...
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
mergiraf
==> New Casks
beyond-compare@4 djstudio font-maple-mono-nf last-window-quits teleport
Marios@christoss-MacBook-Pro ~ % brew upgrade
Marios@christoss-MacBook-Pro ~ % clang --version
Apple clang version 16.0.0 (clang-1600.0.26.4)
Target: x86_64-apple-darwin24.1.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Then I run firedrake-update --rebuild
and got
(firedrake) Marios@christoss-MacBook-Pro ~ % firedrake-update --rebuild
/Users/Marios/firedrake/bin/firedrake-update:20: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources.extern.packaging.version import Version, InvalidVersion
Running /Users/Marios/firedrake/bin/firedrake-update --rebuild
BLAS config is {'BLAS': '/Users/Marios/firedrake/src/petsc/default', 'OPENBLAS': '/Users/Marios/firedrake/src/petsc/default', 'LDFLAGS': '-L/usr/local/opt/gcc/lib/gcc/14'}
Configuration saved to /Users/Marios/firedrake/.configuration.json
Updating the git repository for firedrake
Creating firedrake-update script.
/Users/Marios/firedrake/src/../bin/firedrake-update:20: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources.extern.packaging.version import Version, InvalidVersion
Running ../bin/firedrake-update --no-update-script --rebuild
Installing command line tools...
Checking brew doctor...
Installing required packages via homebrew...
Required package 'gcc' is already installed via Homebrew.
Required package 'autoconf' is already installed via Homebrew.
Required package 'make' is already installed via Homebrew.
Required package 'automake' is already installed via Homebrew.
Required package 'cmake' is already installed via Homebrew.
Required package 'ninja' is already installed via Homebrew.
Required package 'libtool' is already installed via Homebrew.
Required package 'boost' is already installed via Homebrew.
BLAS config is {'BLAS': '/Users/Marios/firedrake/src/petsc/default', 'OPENBLAS': '/Users/Marios/firedrake/src/petsc/default', 'LDFLAGS': '-L/usr/local/opt/gcc/lib/gcc/14'}
Configuration saved to /Users/Marios/firedrake/.configuration.json
Finding dependencies of PyOP2
Finding dependencies of firedrake
Updating the git repository for petsc
Removing existing petsc installations
Updating the git repository for loopy
Updating the git repository for pytest-mpi
Updating the git repository for ufl
Updating the git repository for fiat
Updating the git repository for FInAT
Updating the git repository for tsfc
Updating the git repository for PyOP2
Updating the git repository for pyadjoint
Updating the git repository for firedrake
Cleaning petsc/
Installing petsc/
Depending on your platform, PETSc may take an hour or more to build!
Traceback (most recent call last):
File "/Users/Marios/firedrake/src/../bin/firedrake-update", line 1969, in <module>
install("petsc/")
File "/Users/Marios/firedrake/src/../bin/firedrake-update", line 1058, in install
build_and_install_petsc()
File "/Users/Marios/firedrake/src/../bin/firedrake-update", line 1170, in build_and_install_petsc
check_call([python, "./configure", "PETSC_DIR={}".format(petsc_dir), "PETSC_ARCH={}".format(petsc_arch)] + petsc_options)
File "/Users/Marios/firedrake/src/../bin/firedrake-update", line 678, in check_call
log.debug(subprocess.check_output(arguments, stderr=subprocess.STDOUT, env=os.environ).decode())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/Cellar/python@3.12/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/Users/Marios/firedrake/bin/python', './configure', 'PETSC_DIR=/Users/Marios/firedrake/src/petsc', 'PETSC_ARCH=default', '--download-hwloc', '--with-shared-libraries=1', '--with-c2html=0', '--download-pastix', '--download-mpich', '--download-openblas', "--download-openblas-make-options='USE_THREAD=0 USE_LOCKING=1 USE_OPENMP=0'", '--with-x=0', '--download-metis', '--download-mumps', '--download-ptscotch', '--download-mpich-configure-arguments=--disable-opencl', '--CFLAGS=-Wno-implicit-function-declaration', '--download-pnetcdf', '--download-scalapack', '--download-hwloc-configure-arguments=--disable-opencl', '--download-hypre', '--download-suitesparse', '--download-netcdf', '--LDFLAGS=-Wl,-ld_classic,-dead_strip_dylibs', '--with-fortran-bindings=0', '--with-debugging=0', '--download-bison', '--with-zlib', '--download-superlu_dist', '--download-hdf5']' returned non-zero exit status 1.
Update log saved in /Users/Marios/firedrake/firedrake-update.log
I attach the logs
firedrake-update.log
configure.log
Comparing these logs with another user who just had a successful MacOS install the only notable difference I can see is that on theirs it has the line:
2024-11-19 08:50:37,358 DEBUG Python version: 3.12.7 (main, Oct 1 2024, 02:05:46) [Clang 16.0.0 (clang-1600.0.26.3)]
whilst yours says
2024-11-19 12:20:02,463 DEBUG Python version: 3.12.7 (main, Oct 1 2024, 02:05:46) [Clang 15.0.0 (clang-1500.3.9.4)]
This information is generated from python -c "import sys; print(sys.version)"
.
My final recommendation is to attempt a reinstall of Python 3.12 with homebrew. Otherwise I think this will need to be reported to PETSc in case they have any advice.
@connorjward I did brew cleanup --prune=all
reinstalled Python 3.12 and got
Marios@christoss-MacBook-Pro ~ % $(brew --prefix)/bin/python3.12 -c "import sys; print(sys.version)" 3.12.7 (main, Oct 1 2024, 02:05:46) [Clang 15.0.0 (clang-1500.3.9.4)]
I don't understand what is wrong with my system and it only installs python 3.12 with this clang. Maybe I have set up something the wrong way? What can I do to fix it?
My last guess would be try reinstalling homebrew from scratch. Failing that I am sorry but I do not know what else to try. I suggest opening an issue with PETSc stating that configure
is failing. I think a much more minimal failing example could be provided by running something like
$ $(brew --prefix)/bin/python3.12 configure --download-mpich
@connorjward didn't work. Thank you! I am going to use the Docker image for now and I will open an issue with PETSc.