Python3.9をHomebrewでM1 Macにインストールする(2021年3月16日時点)
概要
機器を入れ替えてイチからPythonをインストールする機会に恵まれたので、記録を残す。思いの外、参考リンクの通りにいかないのが世の常。
参考リンク
対象機器
MacBook Air(M1, 2020) macOS Big Sur(11.2)
インストール手順詳細
Command Line Toolsのインストール
手順通り以下のコマンドを実行すると、Command Line Toolsをインストールするように言われるので、言われるがままにインストール。
$ gcc
Homebrewのインストール
以下のコマンドを打ちます。手順に従い、なすがままです。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
最後のログはこんな感じです。
以下のコマンドを打ってzshのプロファイルに登録します。実際のコマンドは、自身のターミナルに表示された内容で置き換えてください。
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/******/.zprofile
試しに、
brew help
と打って、brewのヘルプが表示されれば成功です。
Pythonをインストール
$ brew search python
すると、以下のように表示されます。3.7以降がインストール可能なようです。
==> Formulae app-engine-python gst-python python-markdown python@3.8 boost-python ipython python-tabulate python@3.9 boost-python3 micropython python-yq reorder-python-imports bpython ptpython python@3.7 wxpython ==> Casks homebrew/cask/awips-python homebrew/cask/kk7ds-python-runtime homebrew/cask/mysql-connector-python
特段、古いのにこだわりがあるわけではなかったので、最新を入れます。
brew install python3
と思ったら騙されました。これだとPython3.8がインストールされました。
$ python3 -V Python 3.8.2
むむ、python3.9はどこに?というわけで探します。
$ which python3.9 /opt/homebrew/bin/python3.9
python3の場所を探して、シンボリックリンクを貼って、python3コマンドで、python3.9が動くようにしておきます。
$ which python3 /usr/bin/python3
$ sudo ln -s /opt/homebrew/bin/python3.9 /usr/bin/python3 ln: /usr/bin/python3: Operation not permitted
おろ・・・許可されてないと怒られた。調べてみると、以下の記事にあるように「/usr/bin/」への変更はroot権限でも許可されてないようです(初心者ですみません)。
初心者向け MacでOperation not permittedの解決方法 - Qiita
さらに調べてみたところ、.zprofileにパスを通してあげれば、「python」コマンドで最新のpythonを動かせるようだったので、以下の通り「.zprofile」を修正しました。2行目の「export〜」を追記しています。
$ vim ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)" export PATH=/opt/homebrew/opt/python@3.9/libexec/bin:$PATH
これで、晴れてpythonコマンドで最新のpythonが動くように変更できました。
$ python -V Python 3.9.2
python3.10が出たときも、brewでインストールしたあとに、同様に.zprofileを修正してパスを通せばOKそうです。
余談
今回は「.zprofile」に足しました。シェルの設定系は苦手だったので、以下の記事も参考にしました。
zshの設定ファイルの読み込み順序と使い方Tipsまとめ - Qiita
zshrcとzprofileについて - gallardo diary
あとはこちらの記事も参考にさせていただきました。ありがとうございました。