2022年1月6日木曜日

pyenv の system の python のバージョンを Homebrew でインストールした python にする方法

pyenv の system の python のバージョンを Homebrew でインストールした python にする方法

概要

なぜか 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 件のコメント:

コメントを投稿