以前にデータ分析用の計算機環境を用意する話をしましたが、計算機だけあってもプログラミング言語環境が無ければ話になりません。
今日は Python とその関連ライブラリのインストールを説明します。
Python のビルド
最新版である 3.4.1 が 5/18 にリリースされました。
自前でビルドをする理由
Python のセットアップ方法としては virtualenv のような言語用仮想環境や、 apt や brew のようなパッケージ管理システムを使う方も多いでしょう。
筆者はよく使うプログラミング言語については自前でビルドすることを推奨しています。その理由は主に次の通りです。
- まだリリースされていない最新のソースコードを利用してビルドすることができる
- 言語にバグや変更したい動作があったとき、自前で修正してビルドすることができる
- 言語の開発に参加しやすくなる
- 特定のパッケージ管理システムや仮想環境ミドルウェアにロックインされることなく、多くのプラットフォームで共通の手順を踏むことができる
ビルドインストール先
またビルドしてインストールする先を標準化しておくことで、アンインストールやバージョンの切り替えがわかりやすくなります。
筆者はほとんどのプロダクトについて次のようにディレクトリを指定しています。
/opt/[プロダクト名]/[バージョン]
また /opt/[プロダクト名]/ の下に current というシンボリックリンクを生成しこれを使用したいバージョンにリンクさせます。
例えば次のようにします。
$ ls -la /opt/python/
drwxr-xr-x 3.3
drwxr-xr-x 3.4
drwxr-xr-x trunk
lrwxrwxrwx current -> 3.4
$ ls -la /opt/ruby/
drwxr-xr-x 1.9.3
drwxr-xr-x 2.0
drwxr-xr-x 2.1
lrwxrwxrwx current -> 2.1
こうしておけば、古いバージョンと共存してバージョンを切り替えるのも容易ですし、アンインストールするときも rm -rf で簡単に削除できます。
インストールスクリプト
また、ビルドは手作業ではなくシェルスクリプトを利用します。
たとえば Python のインストールはこちらのスクリプトを利用します。
https://github.com/ynakayama/tagokura-python/blob/master/installer/install_python.sh
起動時はコメントにあるように、第 1 引数にバージョンを、第 2 引数にインストール先を指定します。
~/install_python.sh 3.4.1 /opt/python/3.4
シェルスクリプトを起動するだけでビルドをできるようにしておけば、異なるホストにインストールするときも、あるいはより新しいバージョンをビルドする際にも、わざわざ手作業を繰り返す必要がありません。
また最近では chef などに代表される自動化フレームワークが流行していますが、シェルスクリプトであれば昔から伝統的なものですので、そう簡単に陳腐化するような心配がありません。古くからある最小の環境などでも使えますし、何か問題があったときに中身を見て挙動を確認するのも容易です。
pip パッケージをインストールする
本体と同じく pip パッケージもシェルスクリプトでまとめてインストールするのがおすすめです。
こちらのスクリプトを参考に必要なパッケージをまとめて入れてしまうのが良いでしょう。
https://github.com/ynakayama/tagokura-python/blob/master/installer/install_pip.sh
AWS を利用するのであれば AWS コマンドラインインターフェースも入れると良いでしょう。
まとめ
計算機環境で利用するプログラミング言語のインストール作業は定型化、自動化しておくと何かと便利です。分散環境で利用する場合はバージョン間の差異が無いよう同じ手順でバージョンを指定してインストールしましょう。