Edited at

pyenv + pyenv-virtualenv (CentOS7)

More than 1 year has passed since last update.


概要

CentOSでのインストールについてまとめた。

OSXと差異は少ないが、前提となる環境が違うため整理した。


環境

次の環境で試している。

$ uname -r

3.10.0-229.14.1.el7.x86_64
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.1.1503 (Core)
Release: 7.1.1503
Codename: Core


パッケージのインストール

CentOSで必要となるパッケージのインストール

yum -y install git

yum -y groupinstall "Development Tools"
yum -y install readline-devel zlib-devel bzip2-devel sqlite-devel openssl-devel


pyenv のインストール

https://github.com/yyuu/pyenv

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

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
exec $SHELL -l


pyenv-virtualenv のインストール

https://github.com/yyuu/pyenv-virtualenv

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
exec $SHELL -l

基本的にはここまでで使えるようになる。


pyenv の使い方


インストール可能なディストリビューション、バージョンのリスト

pyenv install -l


インストール

使いたいバージョンのインストール

pyenv install 2.7.10

pyenv install 3.5.0

インストールしたバージョンのリスト

$ pyenv versions

* system (set by /home/saitou/.pyenv/version)
2.7.10
3.5.0


デフォルトで使用するバージョンの変更

システム側のPythonに変更を加えないようにする。

以下では、追加でインストールした2.7.10をユーザー環境のデフォルトに変更している。

pyenv global 2.7.10

pip install -U pip

システム側のPythonを使いたい場合は system を指定する。

$ python -V

Python 2.7.5
$ pyenv global 2.7.10
$ python -V
Python 2.7.10
$ pyenv global system
$ python -V
Python 2.7.5


pyenv + pyenv-virtualenv の使い方

pyenv virtualenv <複製元> <任意の複製名>

プロジェクト毎に違うバージョンを使い分けたい。

つぎのようにすると、特定ディレクトリを特定バージョンに割り当て、すみ分けて使うことができる。

$ pyenv virtualenv 3.5.0 new_env

$ mkdir -p work/new_project && work/new_project/
$ pyenv versions
* system (set by /home/saitou/.pyenv/version)
2.7.10
3.5.0
new_env
$ pyenv local new_env
pyenv-virtualenv: activate new_env
$ python -V
Python 3.5.0
$ cd ..
pyenv-virtualenv: deactivate new_env
$ python -V
Python 2.7.5
$ cd new_project/
pyenv-virtualenv: activate new_env
$ python -V
Python 3.5.0

3.5.0を元に新規にnew_envという名前で、新たな環境の複製を行っている。システム側のPythonはもとより、複製元の環境にも変更は加えないため、違うモジュールを試すことができる。