pyenvをアップデートしたらlibexec/pyenv: No such file or directoryとか言われた話
環境
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
というエラーメッセージが表示された。
もしやと思い、他のpip
やtox
,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
を実行すれば回避できることがわかった。