1 目的
Mac(macOS Sonoma 14)でPythonを始めるために、環境を整えます。
macOSには、以前はPython2系は標準で入っていて3系は入っておらず、最近のは2系も3系も入っていないと思っていたのですが、自分のMacをよくみるとPython 3.9.6が入っていました。これは、標準で入っていたわけではなく、Xcodeをインストールした時についでに入ったものです。(1 MacでPython3の開発環境を構築する(Command Line Tools for Xcodeによるインストール)
しばらくこれを使っていましたが、Pythonプログラミングの本に従ってやってみようとしたら出来ないことが出てきて、ちゃんと環境を作ろうと思いました。Python 3.9.6はこのまま置いておきます。
2 Pyenvはどうするか
PyenvはPythonのバージョン管理を行うツールで、これを使うならPyenvをインストールしてそれを使用してPythonをインストールすることになります。複数のプロジェクトでPythonのバージョンを変えて並行して開発しているプロなら必要なのでしょうが、私には要らないかなぁと思い、Pyenvは使わないことにしました。Python3に含まれているvenvは使うかも。
3 HomebrewでPythonをインストール
MacにPythonをインストールするには、Python公式サイトからダウンロードした.pkgを使用する方法と、Homebrew(パッケージ管理ソフト)でインストールする方法があります。今回はHomebrewで入れることにしました。Homebrewをインストール後、
brew install python
これでPython 3.12.2が入りました。
この時点では、Homebrewでインストールしたコマンドの在り処までパスがとおっておらず、ターミナルでpython3と打つと前からあるPython3.9.6が起動する状態です。
4 HomebrewでインストールしたPythonを使いやすくする
まず、パスの設定。/etc/paths を編集して一番上に/opt/homebrew/bin を追加しました。
/opt/homebrew/bin
/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/homebrew/bin にはHomebrewで入れたものが入っており、前からあるpython3は/usr/bin に入っていますので、ターミナルでpython3と打てばHomebrewで入れたものの方が優先されるようになりました。
あるいは別の運用方法として、コマンドpython3で前からのPython3、コマンドpythonでHomebrewのPython3を起動する使い分けもできます。その場合、/opt/homebrew/bin の中にある、python関連の一部のファイル(エイリアス)の、ファイル名を変更すればよいかと思います。
mv /opt/homebrew/bin/python3 /opt/homebrew/bin/python
mv /opt/homebrew/bin/python3-config /opt/homebrew/bin/python-config
mv /opt/homebrew/bin/pip3 /opt/homebrew/bin/pip
パスの設定などは、3 HomebrewでPython3をインストールする設定諸々 を参考にしました。
5 Tkinterが使えるようにする
1で書いた「出来ないことが出て」というのはTkinterがうまく動かなかったため。その対応で、Homebrewでpython-tkをインストールしました。アップルのTcl/Tkには不具合があるようです(4 IDLE and tkinter with Tcl/Tk on macOS)。5 新しいMacの環境にしてtkinterがうまく動かない時に試したことのメモ と 6 macOS Monterey 12.6でtkinter(tcl-tk)をちゃんと動かす を参考にしました。