Edited at

pyenvのインストール、使い方、pythonのバージョン切り替えできない時の対処法

More than 1 year has passed since last update.

最近pythonを利用する機会があって開発環境を整えようとしたのですが、バージョン管理の環境構築のためにpyenvを導入した時に相当手間取りました。ここではpyenvの導入の仕方と使い方の基礎、および個人的にぶつかったエラーへの対処を紹介しておきます。また、間違えている箇所は遠慮なくご指摘ください。


利用した環境

利用した環境はOS:macOS Sierra(バージョン10.12.2)です。またvimを途中使用するところがあります。

シェル:bash


pyenvとは

pythonのバージョンを簡単に切り替えることができるようにしてくれるツールです。2系列と3系列との切り替えに便利です。また、ディレクトリごとにpythonのバージョンを切り替えることができます。


pyenvのインストール

ではまず、 pyenvをインストールしましょう。gitから持ってくる場合上のコマンドを、brewが使える場合は下のコマンドを利用してもできます。

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

$ 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.10

$ pyenv install 3.5.0
$ pyenv install --list 


pyenvでバージョンを切り替えてみる

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

$ pyenv local 2.7.10

$ pyenv global 3.5.0

ここできちんと変更が反映されているか確認するためpythonのバージョンを調べます。

$ python --version

Python 2.7.10

このように変更が反映されていれば問題ありません。

反映されていなければ下の記事をお試しください。


pyenvでのpythonのバージョンがpython -vと違う時の対処法

例えばpyenvでバージョンを2.7.10に切り替えたはずなのに、pythonのバージョンを調べたら3.5.0だった...

なんてことがあるかもしれません。

$ pyenv versions

system
* 2.7.10
3.5.0
$ python --version
Python 3.5.0

その場合、whichコマンドでパスを表示してみてください。

$ which python

/usr/bin

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

$ 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のバージョンと一致するか確かめてみてください。


参考リンク集

参考にさせていただいたリンクです。もっと詳しく知りたい方はぜひご活用ください。

- pyenv 利用のまとめ

- pyenvを使ってMacにPythonの環境を構築する

- 書き込み権限のないユーザでファイルを編集してしまったとき Can't open file for writing