Python Apple Silicon - eiichiromomma/CVMLAB GitHub Wiki

(Python) Apple Silicon

当初はx86_64な環境が優位でhomebrewをpyenvを無理矢理x86_64で使う方法が推奨されたりしていたが,現状Apple Silicon向けのPythonでほぼ困らない。とは言え特殊なパッケージは相変わらずx86_64のみでarm64なPythonで使おうとしても

have 'x86_64', need 'arm64e' or 'arm64'

みたいな感じでエラーが出るときの対処法。

準備するPython

アーキテクチャを切り替える必要があるので要Rosetta 2。

softwareupdate --install-rosetta --agree-to-license

でインストールできる。

公式ページから使いたいバージョンのuniversal2 installerがあるものをダウンロード・インストールする。 /Library/Frameworks/Python.framework/Versions以下にインストールされるのでそれを使う。

例えば3.12を入れた場合

arch -x86_64 /Library/Frameworks/Python.framework/Versions/3.12/bin/python3

としてPythonのインタプリタで

import platform
platform.machine()

とすれば

'x86_64'

が出てくる。毎度これをやるのが面倒なのでvenvを使う。

venvでx86_64仮想環境

適当な場所でvenvを使って仮想環境を作るだけで済む

arch -x86_64 /Library/Frameworks/Python.framework/Versions/3.12/bin/python3 -m venv ENV
source ENV/bin/activate
ls -l ENV/bin/python3.12
ENV/bin/python3.12 -> /Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12

となっており,一旦仮想環境を作ってしまえば長いパスは付けずに使えるようになるが,arch -x86_64は必要なので,ipythonを入れてしまってあとはpipなりもipython上から使ってしまうのが一番気楽な運用になる。

arch -x86_64 ./ENV/bin/python3 -m pip install -U pip ipython
arch -x86_64 ./ENV/bin/python3 -m IPython