環境
- macOS Big Sur (version 11.4)
- zsh 5.8 (x86_64-apple-darwin20.0)
手順
https://github.com/pyenv/pyenv を元にインストールを進める。
macOS+zshの場合、以下の節のみ拾い読みすればOK:
-
Homebrew on macOS - Homebrewからpyenvをインストール
- ↑にも記載があるように、途中から Basic GitHub Checkout の 「2. Configure your shell's environment for Pyenv」 → 「For Zsh:」 の部分のみ実行
brew install
brew update
brew install pyenv
zshの設定
オリジナルの手順では ~/.zprofile
に追記しているが、 ~/.zshrc
にしても問題なく設定は極力こちらに寄せたいのでアレンジ
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
確認
pyenvがインストールされたことの確認
pyenv -v
以下のように何らかのバージョンが表示されればOK
% pyenv -v
pyenv 2.0.4
pyenvでpythonのバージョンを切り替える
インストール可能なバージョンの一覧を表示
pyenv install --list
インストール(以降、version 3.9.6
の例で進める)
pyenv install 3.9.6
バージョン切り替え
# そのユーザ全体で切り替える時
pyenv global 3.9.6
# そのフォルダ内のみで切り替える時
pyenv local 3.9.6
バージョンが切り替わったことの確認
python -V
pyenv versions
実行例
% python -V
Python 3.9.6
% pyenv versions
system
* 3.9.6 (set by /Users/user/.pyenv/version)
行頭に *
がついているのが選択されているバージョン、それ以外はインストール済みで利用可能なバージョン。
pyenvによるpythonのバージョン切り替えが効きました!
※うまくいかない時は、途中でターミナルアプリの再起動か source ~/.zshrc
で再読み込みが必要かも(適当にやっちゃった)
バージョン切り替えが反映されない時の確認項目
which python
で .pyenv
配下を指しているか
こんな感じになるはず:
user@macbook ~ % which python
/Users/user/.pyenv/shims/python
~/.zshrc
に eval "$(pyenv init --path)"
と記載できていなかった時にハマりました。
ググって出てくるブログ記事には $(pyenv init -)
の記載が多かったですが、 $(pyenv init --path)
が正しいみたいです。
不要な行は削除して、正しく書き直しましょう:
eval "$(pyenv init --path)"
意図せずホームディレクトリに ~/.python-version
が生成されていないか
トラシューでガチャガチャやっている時に pyenv local ...
が実行されてたりすると、多分あるある…。
お掃除しましょう:
rm ~/.python-version