概要
pyenvのPythonに実行PATHを通したかったけど、既知の方法では全くうまくいかず、つまりに詰まって、1日溶かしてしまった話。
下記のことを行ったとき、この現象が発生しました。
- TimeMachineを用いて、既存MacbookProからMac miniへ環境移行を行う
- 以前の環境ではpyenvを用いていたので、
which python
にて/Users/USER NAME/.pyenv/shims/python
になってほしい - なぜか、pythonのPATHが
/usr/bin/python
とMacのデフォルトになっていた。。。
というわけで、pythonのPATHを/Users/USER NAME/.pyenv/shims/python
に通し直す話。これやらんとpythonのversionが変わらなくて不便でしゃあない。
既知の手順
zshを用いていたので、.zshrcには下記の設定はもちろんしてある。(参考: https://github.com/pyenv/pyenv)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
理論上はsource .zshrc
を行えば、PATHは確実に通るはず。。。
確認してみると。。。
$ which python
/usr/bin/python
Huh?? FUCK!!! 通ってないやんけ!!
ははーん、あれだな。PATHの順序がおかしいのでは?
$ vim /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
ちゃんと、/usr/local/bin
の順序が先に来とるな。。。。
ちなみに/usr/bin
が先に来てると、そっちの実行ファイルが優先的にPATHが通ります。
こうなったら、脳死でpyenvをuninstallして、installしなおそう。
ただ単に brew uninstall pyenv
とかやっても設定ファイルがあちらこちらにあるので、
下記の記事を参考に全部潰しました。
https://qiita.com/yasudadesu/items/1177aa93229e7c4b7a45
んで、改めて.zshrcをsoruce .zshrc
しても、なお治らず。。。
はい、降参しました。
神記事があった
似たような事象を起こした方が記事にしてくれていた、多大なる感謝をm
https://dev.classmethod.jp/articles/pyenv-command-not-found/
要は、リンクの再関連付けをしてみると良いとのこと
$ brew unlink pyenv
$ brew link pyenv
$ source .zshrc
来てくれ。。。祈る気持ちでPythonのPATHを確認。
$ which python
/Users/USER NAME/.pyenv/shims/python
やったぜ!!!
最後に
先人は偉大