みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Google Compute Engineで安定できれいにpythonをインストールする

Google Compute Engineで安定できれいなpython3をインストールするにはいくつかコツがあるので,備忘録を兼ねてメモします.

Google Compute Engineをはじめクラウドではいろいろなインスタンスの種類があって,高性能なものほど高価です.しかしサーバーサイドで実行するためのプログラムをビルドしたりインストールしたりするときに低速なインスタンスを使うと時間がとてもかかります.そこで少し工夫します.

ビルドやインストールを行うときは高速で高価なインスタンス(cpu-highなど)を用い,処理が完了したら,インスタンスのブートイメージをスナップショットして保存し,インスタンスを削除します,低速で安価なインスタンス(f1-microなど)をこのスナップショットイメージから作成します.こうすれば処理に必要なリソースを一時的に購入して,長期運用には最低限のリソースしか必要ないという両方のメリットを享受することができるわけです.

ちなみに,この時作成したスナップショットはマスターとして保存しておけば,あとでサーバーが何らかの障害にみまわれても,このスナップショットから別のインスタンスを作成して設定しなおせばよいので,おすすめです.

Pythonのインストール

Ubuntu 15.04を使います.SSHでログインして,以下のコマンドを実行します.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essentials

この状態で,python3を使うと,3.4.3が使えます.build-essentialsは,gccなど基本的なビルドツールをインストールするための一発コマンドです.個々に指定するよりはこうしたほうが依存関係による変なエラーに翻弄されることが少なくなるような気がします.

Pipのインストール

pythonのパッケージ管理はpipを使用するのが簡単です.

sudo apt-get install python3-pip

を実行すればpip3がインストールされます.

Numpyのインストール

sudo pip3 install numpy

を実行すると,python3にインストールされます.

Matplotlibのインストール

sudo apt-get install libfreetype6-dev libxft-dev
sudo pip3 install matplotlib

を実行します.pipはシステムレベルでの依存関係は解決してくれないので,freetypeとxftは明示的に予めインストールしておく必要があります.これをしないと,

TypeError: unorderable types: str() < int()

とエラーが出ます.

Djangoのインストール

sudo pip3 install django

で完了です.

インストールの確認

以下のようにnumpyとmatplotlibが問題なくimportできることを確認して完了です.

$ python3
Python 3.4.3 (default, Mar 26 2015, 22:03:40)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import matplotlib
>>> import django
>>>

このようにインストールしたpython3は.割りと必要最低限のインストールで安定して使えるものだと思われます.他のパッケージもpipを使えば特に問題なくインストールできるはずです.