Pythonでirbライクなシェルを使う。昔会社のWikiに書きためていたモノを持ってきた。ノウハウ系は会社のWikiだけに書いてると、やっぱりリスクだわぁ。
デフォルトのPythonシェル
IPythonもあるが、インストール不要のデフォルトで良いと思う。ipythonとの違いは、()カッコを省略できないこと。
takuya$ python Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> #ctrl+D で終了(EOF)
でもタブ補完できなかったり、履歴が保存されなかったり。
デフォルトのシェルに機能を追加する。
履歴を保存すれば、コード断片を記述しながら、あとで清書。できるので、開発が楽になります。
終了後も履歴を有効にする
takuya$ python Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>#履歴を保存する設定 >>>import readline >>>readline.write_history_file(".py_history") #ctrl+D で終了(EOF)
pythonシェルで補完を有効にする
readline.parse_and_bind( 'tab: complete' )
Pythonインタラクティブシェルでソースを再ロードする
reloadを使います。
takuya$ python Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>#モジュールを別で書き換えたのをリロードする >>>reload example.to.module #ctrl+D で終了(EOF)
シェルからソースコードを確認する
シェルを実行中にソースコードを確認するには。
Pythonのインタラクティブシェルモードで、ソースを確認するには次のようにします。
takuya$ python Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>#モジュールを別で書き換えたのがシェルに反映されたか確認。 >>>#また、ライブラリのコードを確認したいとき >>>import inspect >>>import django.db >>>print inspect.getsource(django.db)
inspectライブラリは他にもイロイロできます。
モジュールのドキュメントを確認する。
これは有名ね。help
takuya$ python Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26) [GCC 4.3.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>help(unicode) >>>help(unicode.encode) >>>help(unicode.decode)
これらをまとめて設定に保存する。
.bash_profileみたいにpython設定を保存する設定する。
takuya$ export PYTHONSTARTUP=~/.pyrc #.bashrcにpythonシェルの環境変数を設定 takuya$ vim $PYTHONSTARTUP 1 import rlcompleter, readline 2 readline.parse_and_bind( 'tab: complete' )
これで起動時に読み込まれますね。
設定スクリプト
上記のサンプルをコピペで動くようにしたもの。
export PYTHONSTARTUP=~/.pyrc #.bashrcにpythonシェルの環境変数を設定 echo " import rlcompleter, readline readline.parse_and_bind( 'tab: complete' ) readline.write_history_file('.py_history') " >> $PYTHONSTARTUP
これでPython shellがだいぶ使いやすくなるんじゃないでしょうか。
あとは、色づけくらいなかぁ。色があると良いんだけど。それはそのうち調べたいと思います。