pyenv + virtualenv (CentOS7)

  • 46
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

概要

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

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 + virtalenv の使い方

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