最近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のバージョンと一致するか確かめてみてください。
##参考リンク集
参考にさせていただいたリンクです。もっと詳しく知りたい方はぜひご活用ください。