pyenv 環境の python が "No such file or directory" となったときの対処法
kawa.xxx
環境
- macOS 10.14.1
- homebrew 1.8.0
homebrew で古いバージョンを全部消した
かなり長い期間使っている環境だったので、ディスクの容量を削減するために仮想マシンやら homebrew やらをきれいにしていました。
その中で以下のコマンドを打っていました。
$ brew cleanup
このコマンドは最新版でないものを消してくれるというものなのですが、これを実行したら python 関連のものが以下の図のようにエラーを吐いて動かなくなりました
$ pip ~/.pyenv/shims/pip: line 21: /usr/local/Cellar/pyenv/1.2.5/libexec/pyenv: No such file or directory

shims/python の中身を更新する
~/.pyenv/shims/python が古いバージョンの pyenv を向いており、その古いバージョンが brew cleanup で消されてしまった影響でした。
新しいバージョンに向き直すのは上記 python ファイルを直接更新してもよいのですが、以下のコマンドでやる方法もあります。
$ pyenv rehash

無事、python も pip も動く様になりました。めでたしめでたし。
参考文献
ABOUT ME