さくらVPS(CentOS)のPythonのバージョンを上げる

さくらインターネットのVPS(以下、さくらVPSと呼ぶ)を追加で借りて、PythonのバージョンをPython 2系の最新バージョン(Python 2.7.11)に上げてみました。pipのインストールで微妙にハマったので、作業内容をメモしておきます。

さくらVPSのコンソールから「標準OSインストール」をした状態で、ローカルからサーバーにSSHでアクセスして作業します。管理者権限で作業しているので、管理者権限を持っていないアカウントで作業する場合、必要に応じてコマンドの先頭にsudoを付けます。

CentOSのバージョンは6.7。さくらVPSの標準OSはこれのようです。

# cat /etc/redhat-release
CentOS release 6.7 (Final)

Pythonのバージョンは2.6.6。このPythonを2.7.11にしていきます。

# python --version
Python 2.6.6

zlibのインストール

まずはzlibをインストールします。新しいPythonをインストールする前にやっておきます。

zlibが入っていないと、pipのインストール時にこんな感じのエラーが出てきます。

zipimport.ZipImportError: can’t decompress data; zlib not available

yumを使ってzlibをインストールします。

# yum install zlib zlib-devel

openssl-develのインストール

次にopenssl-develをインストールします。openssl-develが入ってないと、pipのインストール時にこんな感じのエラーが出てきます。これもPythonのアップデートの前にやっておいた方が良いかと思われます。

ImportError: cannot import name HTTPSHandler

yumを使ってopenssl-develをインストールします。

# yum install openssl-devel

これで新しいPythonとpipをインストールする準備は完了です。

Pythonの最新版(2.7.11)のインストール

CentOSに最新版のPythonをインストールしていきます。

インストールはこんな感じの手順で行います。

  1. Pythonのソースファイルのダウンロードと解凍
  2. makeファイルの作成
  3. コンパイル

コマンドを打っていきます。

# cd /usr/local/src
# curl -O https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
# tar zxf Python-2.7.11.tgz
# cd Python-2.7.11
# ./configure
# make && make altinstall

これで新しいPythonがインストールされたかと思います。バージョンを確認します。

# /usr/local/src/Python-2.7.11/python -V
Python 2.7.11

Python 2.7.11がきちんとインストールされていました。

標準のPythonコマンドを最新版に変更

Pythonコマンドをインストールした最新版のPythonに入れ替えます。

コマンドを打って行きます。細かいところは環境によって異なるかもしれません。

# mv /usr/bin/python /usr/bin/python2.6.6
# cp /usr/local/src/Python-2.7.11/python /usr/bin/python

この時点でバージョンを確認すると、2.7.11を叩いていることがわかります。

# python --version
Python 2.7.11

yumの設定を変更

yumが古いPythonで動いていて新しいpythonだとうまく動かなかったりするので、yumの設定を書き換えてあげます。

viを立ち上げます。

# vi `which yum`

先頭の1行のパスを変更します。先ほどリネームした古いPythonのディレクトリに変えておきます。

変更前:

#!/usr/bin/python

変更後:

#!/usr/bin/python2.6.6

これでyumがきちんと動くはずです。

pipのインストール

Python 2.7.9以降は標準でpipがインストールされているとのことですが、標準でインストールされて無かったっぽいので自分でインストールします。

インストール用のPythonスクリプトをダウンロードして叩くだけでインストールされます。

# cd /usr/local/src
# wget https://bootstrap.pypa.io/get-pip.py
# python get-pip.py

バージョンを確認します。

# pip --version
pip 8.1.1 from /usr/local/lib/python2.7/site-packages (python 2.7)

これでさくらVPSにPythonの最新版をインストールして、ついでにpipも動くようになりました。

参考にしたサイト

Pythonのバージョンを上げたりエラーに対処したりするのに参考にしたのは、以下のサイトです。ありがとうございます。

CentOS で Python バージョンアップ – 長生村本郷Engineers'Blog

setuptoolsインストール中のzlibエラー – それがしの足音

virtualenvを使って仮想環境を構築する際に"ImportError: cannot import name 'HTTPSHandler'"と言われた時の対処法 – Qiita

シェアしてもらえるとうれしいです。゚(´っωc`)゚。