ちゃぱブログ / エンジニアリング / マネジメント

とあるプロダクトの運用組織のマネジメントしてる人の雑記。主にエンジニアリングやマネジメントのことを書きます。ときおりプチ情報も

Python3.9をHomebrewでM1 Macにインストールする(2021年3月16日時点)

概要

機器を入れ替えてイチからPythonをインストールする機会に恵まれたので、記録を残す。思いの外、参考リンクの通りにいかないのが世の常。

参考リンク

www.python.jp

対象機器

MacBook Air(M1, 2020)
macOS Big Sur(11.2)

インストール手順詳細

Command Line Toolsのインストール

手順通り以下のコマンドを実行すると、Command Line Toolsをインストールするように言われるので、言われるがままにインストール。

$ gcc

f:id:as_chapa:20210316211124p:plain

Homebrewのインストール

以下のコマンドを打ちます。手順に従い、なすがままです。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

最後のログはこんな感じです。 f:id:as_chapa:20210316212411p:plain

以下のコマンドを打ってzshのプロファイルに登録します。実際のコマンドは、自身のターミナルに表示された内容で置き換えてください。

$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/******/.zprofile

試しに、

brew help

と打って、brewのヘルプが表示されれば成功です。

Pythonをインストール

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

あとはこちらの記事も参考にさせていただきました。ありがとうございました。

dev.classmethod.jp