概要
なぜか pyenv の system の python のバージョンが 2.7 のままになっており、Mac に標準でインストールされている Python (/usr/bin/python) になっていました
system の python は Homebrew でインストールした最新の python にしたく方法を模索して解決したので方法を解決します
環境
- macOS 11.6.2
- pyenv 2.0.1
- python 3.9.9
結論
- vim .zshrc
export PATH="/usr/local/opt/python@3.9/libexec/bin:$PATH"
export PATH="/Users/username/.pyenv/shims:$PATH"
# ...
eval "$(pyenv init -)"
pyenv の which python はスクリプトを実行する
~./pyenv/shims/python
というスクリプトを最優先で実行する必要があります
このスクリプトは Homebrew でインストールした Python よりも優先的に実行する必要があります
pyenv は PATH に設定されている python を使う
上記で説明したスクリプトは PATH に設定されている優先度の高い python を system の python として実行します
つまり Mac にデフォルトでインストールされている /usr/bin/python よりも優先度を高く Homebrew でインストールした python をPATH に設定します
ちなみに PATH は左に設定されていればされているほど優先度が高くなります
正しい優先度の確認
以下のようになっていれば Homebrew でインストールした最新版を system として使うようになっています
- type -a python
python is /Users/username/.pyenv/shims/python
python is /usr/local/opt/python@3.9/libexec/bin/python
python is /usr/bin/python
最後に
あと嵌りそうなポイントは PATH の上書きになります
zsh + tmux の場合 .zshrc が複数回実行されて PATH の優先度が変わる可能性があるので注意しましょう
0 件のコメント:
コメントを投稿