それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Pythonのインタラクティブシェルの設定

Pythonirbライクなシェルを使う。昔会社の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がだいぶ使いやすくなるんじゃないでしょうか。
あとは、色づけくらいなかぁ。色があると良いんだけど。それはそのうち調べたいと思います。