ipythonのインストール方法と便利機能の紹介

ipythonが便利そうなのでインストールしてみた。そのメモ。



ipythonに必要なパッケージのインストール


ipythonは依存しているパッケージが多いので、まずは依存しているパッケージからインストールしていきます。


# これがないと上キーで履歴を入力できないかもです
sudo yum install -y readline-devel

# 一度閉じた対話モードの履歴を参照するために必要です
sudo yum install -y sqlite sqlite-devel python-sqlite

私の環境ではさらに色々なパッケージを一括でインストールしているので、それも入れておいた方が無難かもです。少なくともCのコンパイラがないと、この後のpythonのコンパイルができません。


sudo yum groupinstall -y 'Development Tools' install openssl-devel* zlib*.x86_64
sudo yum install -y gcc gcc-c++ zlib-devel openssl-devel bzip2-devel


pythonの再コンパイルとインストール


pythonが参照するパッケージを色々とインストールしたので、pythonの再コンパイルとインストールも必要になります。


システムのpythonを更新してしまうとyum等で問題が起きるので、特定の場所にインストールしています。


# pythonのコンパイルとインストール
cd
wget http://python.org/ftp/python/2.7/Python-2.7.tgz
tar xfz Python-2.7.tgz
cd Python-2.7
./configure --prefix=/opt/python2.7 --with-threads --enable-shared
make
sudo make install

# ~/.bashrcに追記
alias python='/opt/python2.7/bin/python'
alias python2.7='/opt/python2.7/bin/python'
PATH=$PATH:/opt/python2.7/bin

source ~/.bashrc

# /etc/ld.so.conf.d/opt-python2.7.confに追記
/opt/python2.7/lib

sudo ldconfig

# pythonの追加パッケージをsudoなしでインストールするための手順
sudo chown -R ec2-user /opt/python2.7
sudo chgrp -R ec2-user /opt/python2.7


# pythonのバージョン番号が表示されればインストール完了
python2.7 --version

後半の手順は必須ではないですがやっておいた方が後が楽です。



ipythonのインストール


cd
wget http://archive.ipython.org/release/0.13.2/ipython-0.13.2.tar.gz
tar zxvf ipython-0.13.2.tar.gz
cd ipython-0.13.2
python2.7 setup.py build
python2.7 setup.py install

# これが実行できればインストール完了
ipython

ipythonの便利機能の紹介


「>>> 」が付いたままでもコピペできる

ipythonの%paste、%cpasteを使えば、「>>> 」が付いたままのテキストでもそのまま貼り付けて実行できます。


%pasteはクリップボードの内容を勝手に実行してくれる、%cpasteは手動でペーストすれば実行できる、という違いがあるようです。


%pasteを使うためにはさらにTkinter(pythonからTcl/Tkを使うための何か)が必要なのですが、私の環境向けの簡単なインストール手順はないみたいなので私はインストールを諦めました。


# 「>>> print 'hello.'」をそのまま入力しても実行できる!
In [1]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:>>> print 'hello.'
:--
hello.

追記

一行だけなら%cpasteを使わずにそのまま入力してもOKみたいです。整形済みの複数行のコードを入力するときは、%cpasteを使う必要があるっぽいです。


In [1]: >>> print 'hello.'
hello.


tabで補完できる

readlineパッケージがないと最初からは使えないかもです。この記事の手順通りインストールしていればtab補完が使えると思います。



上キーで入力履歴の取得ができる

これもreadlineパッケージに依存しているかもです。readlineを入れる前の私の環境ではpython標準の対話モードですら上キーによる履歴取得ができませんでした。



一度閉じた対話モードの入力履歴が参照できる

sqlite関係のパッケージを入れていれば、一度閉じた対話モードで実行した入力履歴も上キーで参照することができます。



exitで対話モードを抜けられる

python標準の対話モードだとexit()と入力する必要があって、カッコの入力が面倒でした。



色が付いている

エラーメッセージ等に色が付くようになるのでとても読みやすくなります。



フォーマットしてprintする方法

この機能だけipython関係ないですが自分用メモ。


In [1]: import pprint
In [2]: pprint.pprint('hello.')
hello.


参考リンク


ipython公式インストール方法解説ページ

python標準の対話モードで上キーによる履歴入力ができない問題の解決方法

ipython公式のpasteとcpaste違いの解説(というかドキュメント)


著者プロフィール
Webサイトをいくつか作っています。
著者プロフィール