読者です 読者をやめる 読者になる 読者になる

本当は怖い情報科学

情報系大学院生の趣味&実益ブログ。

TSUBAME2.5でPythonの環境構築(matplotlib, Pands)

先日の記事で、TSUBAME環境に(新しめの)Pythonを入れるやり方について書きました。 しかし、このやり方だと本格的なことをやろうとしたときに壊れることがあるようです。まぁしょせん付け焼き刃の対策でしたので。

freak-da.hatenablog.com

今回は、根本的に修正して、普通の環境と同じようにpipを使ったインストールなどを使えるようにする方法を書きます。新しいOpenSSLをホームディレクトリにローカルインストールして、それを使って新しいPythonをインストールすればよいです。

以下、OpenSSLをインストールするディレクトリを$HOME/local/opensslであるとして話を進めます。このディレクトリは他のライブラリ等をインストールしてあるディレクトリとは別にしましょう。具体的には、LD_LIBRARY_PATHがとおってないディレクトリにします。でないと、sshコマンドが読むライブラリがおかしくなってしまいます。

最初に、前回の記事と同様に、プロキシが使える環境であるノードに移動します

$ cd t2a006170
$ export https_proxy=https://proxy.noc.titech.ac.jp:3128
$ export http_proxy=http://proxy.noc.titech.ac.jp:3128

次に、OpenSSLの0.9.8系列の最新リリースをインストールします。githubへのアクセスが許可されているので、ここではgithubからzipをダウンロードします。

# OpenSSLをダウンロード
$ wget https://github.com/openssl/openssl/archive/OpenSSL_0_9_8-stable.zip -O OpenSSL_0_9_8-stable.zip
$ unzip OpenSSL_0_9_8-stable.zip
$ cd openssl-OpenSSL_0_9_8-stable/
$ mkdir -p $HOME/local/openssl
$ ./config --prefix=$HOME/local/openssl
$ make
$ make install

最後に、pyenvを使ってPythonをインストールします。pyenvをご存じない人はググってください。

# パッチをダウンロード(wgetだとなぜかコケるので注意)
$ curl -O https://gist.githubusercontent.com/keisukefukuda/55104b1250f996d87f6b/raw/9f36f7c8b4ffef96b42bfc892efcd12d5e4c7d62/python-custom-ssl.patch
# パッチ中の
# +SSL=$(HOME)/local/openssl
# となっている行を、それぞれの環境に合わせて書き換える
$ vi python-custom-ssl.patch
$ pyenv install 2.7.10 -p <python-custom-ssl.patch

# インストールされたpipをつかってライブラリをインストール。ここではPandasを導入
$ pyenv global 2.7.10
$ pyenv which python
/home/usr1/13D37066/.pyenv/versions/2.7.10/bin/python
$ pip install numpy
$ pip install matplotlib
$ pip install pandas

これで完了です。なお、ここではopensslをstaticライブラリとして作成しています。OpenSSLのconfig時にsharedを指定してしまうと、後の処理がいろいろ面倒になるのでやめた方がよいでしょう。

注釈としては、どうも依然としてpipでのインストールで依存パッケージの自動インストールに失敗する場合もあるようです。この場合、手動で依存パッケージを入れると解決します。

(予定:scipy, chainer等のパッケージのインストールも、今後書き足していく予定です)

【広告】