Skip to content
Advertisement

Installation of earlier versions of Python (prior to 3.8) fails on Mac with M1 Chip (ARM based Apple Silicon)

I have Macbook with Apple M1 Chip in which I have to use Python 3.6.5 for my project. It comes with Python 2.7.16 and 3.8.2 preinstalled. I used brew to install Python which by default installed 3.9.1.

So, I tried this homebrew formula to install 3.6.5, but got following error:

JavaScript

I tried pyenv install 3.6.5 , but it fails with similar error as above. Method explained here by ePi272314 to install python with git commit fails because it is no longer supported in homebrew.

When I try running Terminal with Rosetta 2 and install python 3.6.5, using above methods, I get the following, or some other compilation error:

JavaScript

Finally, I downlaoded dmg file of Python 3.6.5 and installed it. It installed fine and it is visible as a python3 installation at /usr/local/bin/python3 but it cannot run.

JavaScript

Idle installed by Python dmg file cannot run either (I have admin rights).

Lastly came across this python bug report, which says bug is being fixed for Python 3.8, 3.9 and 3.10. Clearly, it looks like older version will not be supported on M1 chips officially.

My question is:

  1. Is there other way to work with Python 3.6.5 on Mac M1? Am I missing anything?
  2. If not, then please mention that. I will accept that as answer.

Thanks in advance.

Advertisement

Answer

Nix installed under Rosetta 2 will do the trick. I didn’t even have it installed before running the below — note the message showing Nix downloading Python 3.6 when I requested it.

JavaScript

The above (for reproducibility purposes) was collected with nixpkgs referring to the channel https://nixos.org/channels/nixpkgs-20.09-darwin, and specifically to the instance sn5ycj9wkbdmyinvqyg9rn42sw71wqad-nixpkgs-20.09pre245572.f18fbc33930.

User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement