ボールを蹴りたいシステムエンジニア

ボール蹴りが大好きなシステムエンジニア、ボールを蹴る時間確保の為に時間がある時には勉強する。

CentOSでpyenvとはpythonをインストールしてpython環境を構築する

環境

CentOS6

はじめに

勝手な解釈をすると、

pyenv

pyenvとはpythonのバージョンを複数同居させる際にデフォルトのpythonバージョンを自由に切り替える事が出来るもの。
pythonは2系と3系で互換性が無い為、バージョンが異なるpythonを実行する際に切り替えたりする。

virtualenv

virtualenvとはプロジェクト毎に違うバージョンを使い分けたい時などに、ディレクトリ毎にバージョンを切り替える事が出来る。
pyenvと組み合わせて利用する?

手順

pyenvインストール

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

bash_profile編集

vi ~/.bash_profile

追記

export PYENV_ROOT="$HOME/.pyenv"                         
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"          

設定反映

source ~/.bash_profile
exec $SHELL -l

バージョン確認

pyenv -v 
pyenv 1.0.0-35-g8305eae

続いてvirtualenvのインストール

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

bash_profile編集

vi ~/.bash_profile

追記

eval "$(pyenv virtualenv-init -)"     

設定反映

source ~/.bash_profile
exec $SHELL -l

インストール完了

実際にpyenvを使ってみる

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

pyenv install -l

バージョンを指定してインストール

pyenv install 2.7.10
pyenv install 3.5.0

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

pyenv versions
* system (set by /root/.pyenv/version)
  2.7.10
  3.5.0

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

pyenv global 3.5.0

変更後バージョンを確認

python -V
Python 3.5.0

続いてvirtualenvを利用してみる

試しに、test_envというpython環境をバージョン3.5.1を指定して作成する

pyenv virtualenv 3.5.0 test_env

何かメッセージ出たけどスルーして良いみたい?

Ignoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use --upgrade to upgrade): setuptools in /root/.pyenv/versions/3.5.0/envs/test_env/lib/python3.5/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /root/.pyenv/versions/3.5.0/envs/test_env/lib/python3.5/site-packages
[

作成された事を確認

pyenv versions
  system
  2.7.10
* 3.5.0 (set by /root/.pyenv/version)
  3.5.0/envs/test_env
  3.5.0/envs/test_hoge
  test_env

ディレクトリ作成

mkdir -p ~/work/new_project && cd ~/work/new_project/

test_env環境を指定

pyenv local test_env 

コンソールはじめに(test_env)って文字列が表示される

(test_env) [root@localhost new_project]# 

環境を指定したディレクトリには.python-versionってファイルが作成される

ls -a .python-version 
.python-version

バージョン確認

python -V
Python 3.5.0

環境削除

 pyenv uninstall test_env
pyenv-virtualenv: remove /root/.pyenv/versions/3.5.0/envs/test_env? y

削除された事を確認

[root@localhost work]# pyenv versions
  system
  2.7.10
* 3.5.0 (set by /root/.pyenv/version)
  3.5.0/envs/test_hoge

ちなみにpython_pathは以下らしい

~/.pyenv/versions/3.5.0/lib/python3.5/