Installing Psi4 for Mac silicon from source

Hello, I’m testing out Psi4 on my Mac OS M1 desktop and very pleasantly surprised by how smooth it was to download, install, and run. Unfortunately, I ran into a snag when trying to use an ECP:

! Fatal Error: BasisSet contains ECP shells but libecpint addon not enabled. Re- !
! compile with -D ENABLE_ecpint=ON. !
! Error occurred in file: /Users/runner/miniforge3/conda- !
! bld/psi4_1683815936931/work/psi4/src/ on line: 145 !

I saw in the forum I could try compiling using Psi4 version 1.7, but that doesn’t seem to be available for the M1 machines. It seems I should be able to compile Psi4 1.8 from source, but I rarely install programs from source and I’d need some instructions first. Is there a chance an updated installer or at least barebones instructions for installing from source might come about soon?

Thanks for your contributions to Psi-4!

According to release notes (Release v1.8.1, 2023-07-13 · psi4/psi4 · GitHub), the latest 1.8.1 package has ecpint enabled on Apple silicon only for python 3.10. I would try getting that conda package.

If you still want to attempt building psi4 from source, docs & tools for building psi4 (status and survey) · Issue #2965 · psi4/psi4 · GitHub has the latest advice for compiling, including notes on Apple silicon. The workflow is basically just:

  1. create conda environment with dependencies (this is where Apple silicon seems to be tricky)
  2. clone repo
  3. compile

edit: Compiling and Installing from Source is also very useful, but above link has the Apple silicon specific advice

1 Like

That psi4 1.8.1 on Mac arm64 with libecpint constraint for only python=3.10 was true at the time the 1.8.1 packages were first built (build string on conda ends with _0). It got fixed later, so the latest builds (1.8.1 with build string ending _2) should have ecpint working for all pythons. Let me know if you have trouble downloading it. (also make sure you’re pulling from c-f (-c conda-forge/label/libint_dev -c conda-forge) and not getting ecpint from the psi4 channel (-c psi4). The latter was compiled with different settings, so it doesn’t work with 1.8.1.)

1 Like

Thank you! I tried @philipmnel’s suggestion doing 1.8.1 with python 3.10 using conda, and it was very fast and easy to work on my machine. I tested the ecp calculations, and they seem to be working too. I will refer back to these messages if I need to try to recompile myself. Thank you for the prompt help!