みんな大好きなMacOSのメジャーバージョンアップ。
Catalinaにバージョンアップしたらデフォルトのシェルスクリプトがzshに変わっており、思わぬ挙動になっていたので整理しておく。
起きたこと
- catalinaにバージョンアップしたら、デフォルトのシェルがzshに変わっていた。(全然気が付かなかった)
- 当然、.bash_profile からの移行は自動で行われないため、ロード時の設定が反映されない。
- pyenv がロードされず、パスがデフォルトのままになるため、ローカルに最初からインストールされている python が有効になった。
- ローカルの pip にはモジュールを入れていないので、プログラムが起動しない。
対処したこと
zshで生きていこうと思い、公式 に「Zsh note: Modify your ~/.zshenv file instead of ~/.bash_profile.」とあったので、.zshenv に移設するも、pyenv コマンドが見つからないというエラーで怒られた。
ひどい話である。
.zshenv(エラー)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
答えとしては、公式のトラブルシュート/FAQ を読んだら、「Which shell startup file do I put pyenv config in?」とあった。
通常は .zshrc に記載するものらしい。
.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
こちらで問題なく動いた。