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が実行できました。