pyenvとは
pythonのバージョンを簡単に切り替えることができるようにしてくれるツールです。2系列と3系列との切り替えに便利です。また、ディレクトリごとにpythonのバージョンを切り替えることができます。
pyenvのインストール
ではまず、 pyenvをインストールしましょう。gitから持ってくる場合上のコマンドを、brewが使える場合は下のコマンドを利用してもできます。
$ brew install pyenv
bash_profileの編集
次にpyenvのパスを通すためにbash_profileを編集します。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
またはvimを使ってbash_profileに直書きしても構いません。
$ vim ~/.bash_profile export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
最後にbash_profileの保存を適用します
$ source ~/.bash_profile
pyenvでpythonをインストール
バージョン切り替えを体験するために2つほどバージョンが違うpythonをインストールしてましょう。インストールできるか確認をしたければ3つめのコマンドを利用すると一覧が確認できます。
$ pyenv install 2.7.15 $ pyenv install 3.7.3 $ pyenv install --list
pyenvでバージョンを切り替えてみる
バージョンの切り替えをしてみます。localの場合は今いるディレクトリに、globalの場合は全体に反映されます。
$ pyenv local 2.7.15 $ pyenv global 3.7.3
ここできちんと変更が反映されているか確認するためpythonのバージョンを調べます。
$ python --version Python 2.7.15
このように変更が反映されていれば問題ありません。
反映されていなければ下の記事をお試しください。
pyenvでのpythonのバージョンがpython -vと違う時の対処法
$ pyenv versions system * 2.7.15 3.7.3 $ python --version Python 3.7.3 (pyenvが適用されてない)
その場合、whichコマンドでパスを表示してみてください。
$ which python
/usr/bin
このようになっていたら、
pyenvがインストールされている/usr/localよりPythonがデフォルトでインストールされている/usr/binの優先度が高くなっているので、以下のように編集してください。
$ vim /etc/paths /usr/local/bin /usr/bin /bin /usr/local/sbin /usr/sbin /sbin
ここで、順番大事です!優先度が高いものが上に来るようにしており、パスがusr/binよりも/usr/localを優先されるようになります。
確認のためwhichコマンドをもう一度入力すると
$ which python
/usr/local/bin/pyenv
のようになるはずです。
最後にもう一度pyenvのpythonのバージョンがpythonのバージョンと一致するか確かめてみてください。