created: 2020-08-12T02:49:42.000Z
/usr/local/Cellar/pyenv/1.2.8/libexec/pyenv: No such file or directory
brewで色々アップグレードされたあと、pyenvで入れたpythonが動かなくなることがある
$ code
/Users/sakamoto/.pyenv/shims/python: 行 21: /usr/local/Cellar/pyenv/1.2.8/libexec/pyenv: No such file or directory
/usr/local/bin/code: 行 10: ./MacOS/Electron: No such file or directory
pyenvで入れたpython (~/.pyenv/shims/python) はbashスクリプトになっていて、以下の行にもう存在しないパスがハードコードされてるので発生している
$ tail -1 ~/.pyenv/shims/python
exec "/usr/local/Cellar/pyenv/1.2.8/libexec/pyenv" exec "$program" "$@"
これは pyenv rehash
で直る
$ pyenv rehash
$ tail -1 ~/.pyenv/shims/python
exec "/usr/local/Cellar/pyenv/1.2.20/libexec/pyenv" exec "$program" "$@"
rehashは現在のshimsのパスに張り替えたスクリプトを作り直してくれるもの
本来だと自動的にrehashがされるはず、とのことだがたぶんbrewが勝手にpyenv自体のパスを変えてしまうのでそれをカバーするのは無理なのだろう。困ってる人たくさんいるみたいなのでエラーメッセージがもうちょい親切になってればいいのかもしれない