search
LoginSignup
511

More than 3 years have passed since last update.

posted at

updated at

Organization

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

最近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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
511