😸

Python3.7系 をM1 Macで動かす

2023/02/14に公開

はじめに

M1チップが搭載されたMacはPython3.7系がそのままでは動作しない。例えばpyenvを使用してpython3.7系をインストールしても、エラーが発生する。
プロジェクトによっては、古いPythonのバージョンを使用することもあるため、M1 MacでPython3.7系を動かす方法をまとめた。3.7系よりも過去のバージョンについては確認していない。

事前準備

  • pyenvのインストール

やること

  • Install x86 brew
$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  • Install Python 3.7
$ arch -x86_64 /usr/local/bin/brew install python@3.7

# output
python@3.7 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have python@3.7 first in your PATH, run:
  echo 'export PATH="/usr/local/opt/python@3.7/bin:$PATH"' >> ~/.zshrc

For compilers to find python@3.7 you may need to set:
  export LDFLAGS="-L/usr/local/opt/python@3.7/lib"
  • outputの通りに設定
$ export LDFLAGS="-L/usr/local/opt/python@3.7/lib"
$ echo 'export PATH="/usr/local/opt/python@3.7/bin:$PATH"' >> ~/.zshrc
  • ibrewのaliasを登録?
$ alias ibrew='arch -x86_64 /usr/local/bin/brew'
  • Add python executable (symlink to python3)
$ ln -s python3 "$(ibrew --prefix python@3.7)"/bin/python
  • Symlink x86 Python 3.7 into pyenv
$ ln -s "$(ibrew --prefix python@3.7)" ~/.pyenv/versions/3.7.12

確認

$ pyenv local 3.7.12
$ python -V

Python 3.7.12
$ python -c 'import _ctypes' # works!

さいごに

  • 3.7.12のインストールは可能となった
  • 3.6系などの過去のバージョンは不明

Discussion