Help us understand the problem. What is going on with this article?

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

koooooo
お手てのしわとしわ、あわせてしわ寄せー
planningdev
九州工業大学 ITサービス開発・運用団体
https://www.planningdev.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした