概要
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 のインストール
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 のインストール
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はもとより、複製元の環境にも変更は加えないため、違うモジュールを試すことができる。