Troubleshooting Concrete installation on Apple Silicon

Since Concrete v1.0, Apple Silicon processors (M1, M2…) are supported.

Here is a list of common installation error causes ordered by frequency decreasing (meaning you have a high probability of solving your issue with the first solution).

A successful install of concrete should output the following:

$ pip freeze | grep concrete


(Click section to unfold)

Check your pip version is greater than 20

Concrete use a package binary format that is only available in recent version of pip. If you use the version provided by your system, you may encounter following issue:

ERROR: concrete_python-1.0.0-cp38-cp38-macosx_11_0_arm64.whl is not a supported wheel on this platform.

to check your pip version, do the following:

$ pip -V

pip 22.3.1 from <path-to>/pip (python 3.10)

If you have an older version, update pip to the latest available version with:

$ pip install --upgrade pip

Check your Python version is >=3.8 but <=3.10

Concrete v1.0 supports python from 3.8 to 3.10. You could check your current version of Python with the following command:

$ python -V

Python 3.10.9

You could easily install another version of python through homebrew for example.

Check your Python architecture

on Apple Silicon, you could emulate x86 architecture with rosetta. While this could be useful,

in the case of Concrete installation, you should make sure you are using the python ARM version:

$ which python


$ file <path-to>/python

<path-to>/python: Mach-O 64-bit executable arm64

Make sure you have the latests xcode command line tools

In order to properly work Concrete require the ld linker. On macOS system you
could install it with the following command:

xcode-select --install

If the linker is not found you will experience something like:

line 170, in compile
RuntimeError: Caught an unknown exception!

as right now the exception are not correctly handled (open issue)

1 Like