読者です 読者をやめる 読者になる 読者になる

CentOSにpyenvをインストールする方法

pyenv
スポンサーリンク

CentOS に pyenv をインストールする方法をまとめました。ここでは使用方法については触れていません。

pyenvのインストール

 yyuu/pyenv · GitHub

初めに依存ライブラリのインストールをします。

# yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel

 Common build problems · yyuu/pyenv Wiki · GitHub

Git がインストールされてない場合はしてください。また、大体入ってると思いますが G++ コンパイラも必要になると思うのでインストールしておきます。

# yum install git gcc-c++

 CentOSに最新版のGitをインストール・アップデートする方法 - TASK NOTES

 CentOSに新しいバージョンのGCC/G++(4.8/4.9)をインストールする - TASK NOTES

pyenv のリポジトリを clone します。以下、rootで実行していきます。

# cd /usr/local/src/
# git clone https://github.com/yyuu/pyenv.git

clone できたら PATH の設定と、起動時にpyenv initを実行するように profile に追加します。ここでは全ユーザーが使用できるように/etc/profile.d/に作成していますが、個人ユーザーでのインストールであれば~/.bashrcなどでもいいです。

echo 'export PYENV_ROOT="/usr/local/src/pyenv"' >> /etc/profile.d/pyenv.sh
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /etc/profile.d/pyenv.sh
echo 'eval "$(pyenv init -)"' >> /etc/profile.d/pyenv.sh

シェルを再起動すると pyenv の PATH が通っていると思います。

# exec $SHELL -l
# pyenv --version
pyenv 20151124-6-g96bfa15

pyenv-virtualenvのインストール

 yyuu/pyenv-virtualenv · GitHub

pyenv の plugins ディレクトリに virtualenv のリポジトリを clone します。

# cd /usr/local/src/pyenv/plugins/
# git clone https://github.com/yyuu/pyenv-virtualenv.git

pyenv と同様にpyenv virtualenv-initを実行するように profile に追加してください。シェルを再起動すると virtualenv のコマンドが使用できるようになっています。

# echo 'eval "$(pyenv virtualenv-init -)"' >> /etc/profile.d/pyenv.sh
# exec $SHELL -l
# pyenv virtualenv --version
pyenv-virtualenv 20151103 (conda conda 3.18.5)

pyenv-updateのインストール

 yyuu/pyenv-update · GitHub

pyenv のアップデートをしたい場合は、インストールディレクトリに移動してgit pullをすれば アップデートは可能ですが、コマンドで実行できるようにしておきたいと思います。plugins ディレクトリに移動してリポジトリを clone しましょう。

# cd /usr/local/src/pyenv/plugins/
# git clone git://github.com/yyuu/pyenv-update.git

完了したらpyenv updateコマンドが使用できるようになっていますので、実行すると以下のように pyenv 本体と plugins を更新してくれます。

# pyenv update
Updating /usr/local/src/pyenv...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 8 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (8/8), done.
From https://github.com/yyuu/pyenv
 * branch            master     -> FETCH_HEAD
Updating 96bfa15..aaec358
Fast-forward
 plugins/python-build/share/python-build/2.7.11 |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
 create mode 100644 plugins/python-build/share/python-build/2.7.11
Updating /usr/local/src/pyenv/plugins/pyenv-update...
From git://github.com/yyuu/pyenv-update
 * branch            master     -> FETCH_HEAD
Already up-to-date.
Updating /usr/local/src/pyenv/plugins/pyenv-virtualenv...
From https://github.com/yyuu/pyenv-virtualenv
 * branch            master     -> FETCH_HEAD
Already up-to-date.

pyenv-installerを使ってインストールする

 yyuu/pyenv-installer · GitHub

ここまで色々とやってきましたが pyenv-installer を使用すれば一回でプラグインもまとめてインストールすることができます。ただし、デフォルトでは実行ユーザーのホームディレクトリにインストールされますので気を付けましょう。

$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
104  2087  104  2087    0     0  17946      0 --:--:-- --:--:-- --:--:--  407k
Initialized empty Git repository in /home/vagrant/.pyenv/.git/
remote: Counting objects: 11391, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 11391 (delta 1), reused 0 (delta 0), pack-reused 11382
Receiving objects: 100% (11391/11391), 2.02 MiB | 1.26 MiB/s, done.
Resolving deltas: 100% (8004/8004), done.
Initialized empty Git repository in /home/vagrant/.pyenv/plugins/pyenv-doctor/.git/
remote: Counting objects: 26, done.
Receiving objects: 100% (26/26), 45.50 KiB, done.
remote: Total 26 (delta 0), reused 0 (delta 0), pack-reused 26
Resolving deltas: 100% (10/10), done.
...

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by adding
# the following to ~/.bash_profile:

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

実行後は最後に表示されている設定を他と同じように profile に追加して完了です。