pyenvをアップデートしたらlibexec/pyenv: No such file or directoryとか言われた話

pyenv python

環境

macOS 10.14.3
pyenv 1.2.11

本題

ある時、気が向いて

$ brew upgrade

を実行したらpyenvのバージョンが上がった。

その直後、

$ python

としたら、

Users/username/.pyenv/shims/python: line 21: /usr/local/Cellar/pyenv/1.2.11/libexec/pyenv: No such file or directory

というエラーメッセージが表示された。

もしやと思い、他のpiptox,django-adminなどのPython依存のコマンドを試して見た所全て

Users/username/.pyenv/shims/pip: line 21: /usr/local/Cellar/pyenv/1.2.11/libexec/pyenv: No such file or directory
Users/username/.pyenv/shims/tox: line 21: /usr/local/Cellar/pyenv/1.2.11/libexec/pyenv: No such file or directory
Users/username/.pyenv/shims/django-admin: line 21: /usr/local/Cellar/pyenv/1.2.11/libexec/pyenv: No such file or directory

と言われてしまった...

エラーの内容を見る限り、pyenvのバージョンが変わったことにより、今まであった場所にファイルがいなくなったことが原因らしい...

RFE: pyenv update should regenerate shims unconditionally
https://github.com/pyenv/pyenv/issues/1068

によると

$ pyenv rehash

とすると治るらしい。

$ python --version
Python 3.7.1

無事治った。

最後に

pyenvのアップデートを行ったら忘れずにpyenv rehashを実行すれば回避できることがわかった。

Memo
連続企画

Djangoクラスベースビューのすヽめ

Memo
連続企画

Djangoでブログを作ろう

GitHub
制作物

Django-Boost

Djangoでの開発を加速する拡張ライブラリ
GitHub
制作物

ktPyString

kotlinにpythonと同等の文字列操作を提供するライブラリ
GitHub
制作物

py_string

c++にpythonと同等の文字列操作を提供するライブラリ
GitHub
制作物

SwiftyPyString

Swiftにpythonと同等の文字列操作を提供するライブラリ