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.
参考リンク
python標準の対話モードで上キーによる履歴入力ができない問題の解決方法
ipython公式のpasteとcpaste違いの解説(というかドキュメント)