macはデフォルトでpythonのバージョン2.7.16が入っています。公式インストーラーでバージョン3.9.7を入れたが、”python“を実行するとバージョン2.7.16が実行されます。
これを”python"のコマンドで、3.xxを実行できるように変更します。
環境
変更するmacの環境
- 機種ID: MacBookPro13,1
- プロセッサ名: デュアルコアIntel Core i5
- システムのバージョン: macOS 11.5.2 (20G95)
- シェル: zsh
インストールされているpython
- python2
バージョン: python 2.7.16
PATH: /usr/bin/python - python3(公式インストーラーからインストール)
バージョン: 3.9.7
PATH: /usr/local/bin/python3
現状の問題
“python“コマンドを実行するとpython2が実行されます。

python3を実行するには”python3“と入力する必要があります。

このデフォルトのコマンドで動くバージョンを3.xxに変更します。
設定
コマンドの仕組み
簡単に説明すると、ターミナルでコマンドを実行した時、$PATHを通してコマンドに相当するプログラムを探し、プログラムを実行する。(この$PATHはユーザごとに異なり、設定ファイルは使うシェルによって異なる。)
シンボリックリンクの追加
公式インストーラーからインストールしたpython3やpip3といったプログラムは/Library/Frameworks/Python.framework/Versions/3.9/bin以下にインストールされ、環境変数$PATHが通っている/usr/local/bin以下に実行ファイルへのシボリックリンクが存在する。
python3コマンドを実行した場合、$PATHを通して、/usr/local/binにあるpython3を実行する。
ここで新たに/usr/local/bin/python3へのシンボリックリンク/usr/local/bin/pythonを作ることでpythonコマンドでpython3を呼び出すようにする。
pip3などpython3と同時にインストールされるコマンドのシンボリックリンクも作成しておく。
ln -nfs /usr/local/bin/idle3 /usr/local/bin/idle
ln -nfs /usr/local/bin/pydoc3 /usr/local/bin/pydoc
ln -nfs /usr/local/bin/python3 /usr/local/bin/python
ln -nfs /usr/local/bin/python3-config /usr/local/bin/python-config
ln -nfs /usr/local/bin/pip3 /usr/local/bin/pipターミナルを再起動して確認してみると

pythonコマンドでpython3が実行できました。
