pyenv で複数の python バージョンを管理する

環境

利用した環境は OS:macOS Ventura(13.5.2)
シェル:zsh

pyenv とは

python のバージョンを切替できるようにしてくれるツールです。ディレクトリごとに python のバージョンを切り替えることができます。

pyenv のインストール

git から取得する方法と brew からインストールするコマンドがあります。

% git clone git://github.com/yyuu/pyenv.git ~/.pyenv
% brew install pyenv

.zshenv、.zsh_rc の編集

次に pyenv のパスを通すために zshenv を編集します。

% echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshenv
% echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshenv
% echo 'eval "$(pyenv init -)"' >> ~/.zshrc

または vim を使って編集して OK

% vim ~/.zshenv
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"

% vim ~/.zshrc
eval "$(pyenv init -)"

適用します

% source ~/.zshenv
% source ~/.zshrc

pyenv で python をインストール

python をインストールする。--list でバージョン一覧が確認できる。

% pyenv install 3.10.13
% pyenv install --list 

pyenv でバージョン切替

バージョンの切り替えをしてみます。local の場合は今いるディレクトリに、global の場合は全体に反映されます。

% pyenv local 3.10.13
% pyenv global 3.10.13

python のバージョンを確認

% python --version
Python 3.10.13

pyenv でインストールした バージョンを削除

% pyenv uninstall 3.7.0

pyenv で設定した python のバージョンと違う時の対応

pyenv でバージョンを 3.10.13 に切り替えたはずなのに、python のバージョンを調べたら違うとき

% pyenv versions
  system
* 2.7.10
  3.10.13
% python --version
Python 3.5.0

which コマンドでパスを確認

$ which python
/usr/bin

デフォルトで PC に入っている python を参照してきています。もしここで pyenv の方を参照するようにパスを変更したければ、以下のように編集してください。

% vim /etc/paths
/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin

usr/bin より /usr/local を優先させ、which コマンドをもう一度入力すると

$ which python
/Users/[ユーザー名]/.pyenv/shims/python

参考リンク集

  • https://qiita.com/koooooo/items/b21d87ffe2b56d0c589b