顧客の稼働中のcentos6.9にpython3系を入れる必要が生じpyenvを入れた。これはその記録。当然だが、これから試そうという人は開発環境などで試してからインストールしましょう。
前提
サーバーにはデフォルトではpython2.7が入っている。「顧客の稼働中のサーバー」というのがポイントで、pythonを使っている可能性を完全に確認出来ない以上は、安易にバージョンアップできない。
そこでadminというユーザーを作成し、その配下にpyenvを入れることを前提とすることにした。globalでインストールしなければ、仮に他のユーザーでpythonを使っていても、影響することはない。
/home/admin配下
pyenvを入れる流れ
- gitからpyenvをダウンロードする
- サーバーでpathを通し有効にする
- pythonをインストールする
- pythonを切り替える
- pythonのバージョンを確認する
git
サーバーのadmin配下に移動したら、pyenvをインストールする。
$git clone git://github.com/yyuu/pyenv.git ‾/.pyenv
pathを通す
次にpathを通す。ここでは.bash_profileに記述することとする。
$ 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
$ echo ‘export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ‾/.bash_profile
$ echo ‘eval “$(pyenv init -)”‘ >> ‾/.bash_profile
$ source ‾/.bash_profile
pythonをインストール
次に切り替えたいpythonのバージョンをインストールする。
$ pyenv install 3.6.4
切り替え可能なpythonのバージョン確認
念のため切り替え可能なバージョンを確認する。ここで目的のバージョンが入ってない場合は、インストールできていないことを意味する。
$pyenv install –list
pythyonを切り替える
次にバージョンを切り替える。ここではadmin配下なのでlocalとするが、サーバー全体に適用したい場合はlocalをglobalにする。
$pyenv local 3.6.4
$pyenv rehash
$pyenv rehash
切り替えたpythonバージョン確認
admin配下でバージョン確認をすれば任意のバージョンに切り替わっている。admin配下でバージョン確認をすれば2.7のままのはず。違う場合はどこかで手順が違っている。
$ python -V
Python 3.6.4
Python 3.6.4
このコマンドでも確認できる。
$ pyenv versions
system
* 3.6.4 (set by /home/admin/.python-version)
system
* 3.6.4 (set by /home/admin/.python-version)
pythonがインストールされたディレクトリは以下のコマンドで確認できる。
$ which python