pyenv を使って Python のバージョンが切り替わらないときに読むページ

Python のバージョン切り替えの手間を軽減してくれる pyenv ですが、私の環境(M1 Mac)では切り替わりませんでした。

バージョンが切り替わらない

#pyenv インストール
$ brew install pyenv

#.zshrc に書き込む
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

#現在のバージョン確認
$ python --version
Python 2.x.x

#インストールできるバージョンを確認
$ pyenv install --list

#最新の安定版(この場合は 3.10.0)をインストールする
$ pyenv install 3.10.0

#バージョン切り替え
$ pyenv global 3.10.0

#現在のバージョン確認
$ python --version
Python 2.x.x

#↑バージョンが切り替わっていない

解決方法

どうやら .zshrc の書き方が違うようで、以下のように書くと切り替えできました。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc

ネット上では「echo ‘eval “$(pyenv init -)”‘ >> ~/.zshrc」と書く記事が多かったのですが、私と同じように切り替わらない場合は「echo ‘eval “$(pyenv init –path)”‘ >> ~/.zshrc」と書くことで解消されるかもしれません。

こういう細かいことを知らないまま、つまずいて前に進めない・・・なんて経験は今まで何度もあります。

最近は、ちょっとしたことを Gist や Twitter などにメモ書きしていたのですが、量が増えてきて遡るのが大変でした。

さらに、そもそも外部サービスは自分が意図しないところでいつか消える可能性もあるので、自分が管理しているブログなら自分のさじ加減でどうとでもなりやすいなと・・・やっぱり「自分でサーバー借りてブログ書くっていいな」と思いました。

というわけで、自分が将来 pyenv を使った環境構築をする機会があったときに振り返られるよう、メモ書きました。

参考リンク

著者:bouya Imamura