茨城県つくば市でモバイルアプリ(iPhone、Android)のプログラミングをする日記です。あとWordPress、Raspberry Pi、Arduinoなど。

モバイルプログラミング@つくば

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

投稿日:2016年3月22日 更新日:

本記事では、Python 2.7を使っています。
執筆から時間が経っており、情報が古い可能性があります。

こんにちは、okuzawatsです。
さくらインターネットの1000円VPSを愛用しています。

さくらインターネットの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のインストール

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

Installation — pip 9.0.1 documentation

インストール用の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

-Python

Copyright© モバイルプログラミング@つくば , 2017 AllRights Reserved Powered by AFFINGER4.