MacでPythonのバージョンを2系(2.7.10)から3系(3.9.5)にアップデートしていたのですが、ターミナルを終了して再度開くとバージョンが戻る現象が発生しました。
解消してみると、くだらないオチだったのですが、経験があまりない方々は割と詰まってしまいそうな気がしましたので、メモとして記載(共有)しようと思います。
想定読者
MacでPythonのアップデートを行われている方を想定致します。
バージョンが変わらないという方だけでなく、アップデートを行われている方の参考にもなるかと思います。
ちなみに私はアップデートを行う際、以下の記事を参考にさせて頂きました。
補足: シェルの環境設定(.bash_profileへの書き込み)は2の記事を参考にしました。
再現するまで
参考にした記事の通り、
- Homebrewでpyenvをインストール
- pyenvの設定のため、.bash_profileを修正
- pyenvを使用して最新(対応時は3.9.5)のPythonをインストール
-
pyenv global 3.9.5
コマンドをターミナルで実行してPythonのバージョン切り替え
以上を行いました。
pyenv versions
を実行すると、
$ pyenv versions
system
* 3.9.5 (set by $HOME/.pyenv/version)
pyenvのPythonのバージョンの切り替えは問題なし。
python --version
でPythonのバージョンも確認すると、
$ python --version
Python 3.9.5
こちらもOK。
しかし、ターミナルを終了して再度起動し、 python --version
すると、
$ python --version
Python 2.7.10
元のバージョンに戻りました。(pyenv versionsの方は更新が正常に反映されていました)
原因
私のPCのシェルがbashではなくzshを使っていたことが原因でした。(echo $SHELL
を実行すると「/bin/zsh」と表示されました。)
どうやら、シェルの環境設定(「再現するまで」の2の手順)の修正対象ファイルを誤っていたようです。
対策
参考にした記事で.bash_profileに追記されていた下記の設定を.zshrcに追記しました。
export PATH="$HOME/.pyenv/shims:$PATH"
これで、ターミナルを再起動してもpythonのバージョンは元に戻らなくなりました。
シェルの環境設定の際は、まず、 echo $SHELL
をターミナルで実行して、自分のPCのシェルが何を使っているか確認しないといけませんね...
最後に
「何かをする時は、まず己自身を知りなさい。」
そんな声が聞こえた気がしました。
良い教訓でした、反省。。。