| tags: | python, ipython, module, application, deveropment |
|---|---|
| created: | 2006-06-09T10:09:52 |
「ipython」はインタラクティブコンソール拡張モジュールで、 インタラクティブコンソールに非常に便利な機能を追加してくれます。
これまで、pyreadlineモジュールが日本語キーボードを認識してくれなかったので、 (英語キーボードアサインになってしまう) 泣く泣く利用を見送っていた「ipython」ですが、 pyreadlineがバージョンアップして、日本語の利用もOKになったのです!
In [12] sys. <-ここでTABキーを押すと下記のような一覧がでます。
In [12] sys.arg <-ここでTABキーを押すと「sys.argv」に変化します。 (つまり候補がユニークであれば補完が完了します。)
このように、「!」マークのあとにコマンドプロンプトで 使っているコマンドがそのまま使えます。
もちろん、フォルダ名やファイル名に対してもTAB補完が効きます!
このおかげで、コマンドプロンプトと pythonのインタラクティブモードとの行き来が不要になります。
このように、オブジェクトのラストに「?」をつけてEnterキーを押すと、 型、ソースファイル、ドキュメント、名前空間などの情報を簡単に調べられます。
In [19]: %pdb on Automatic pdb calling has been turned ON
としておくと、コード実行中に補足されない例外が発生すると 自動的にデバッグコンソールモードに。
In [24]: test = [1,2,3] In [25]: for i in range(4): ....: print test[i] ....: 1 2 3 ---------------------------------------------------------------- exceptions.IndexError Traceback (most recent call last) C:\MyWorks\<ipython console> IndexError: list index out of range > <ipython console>(2) ipdb> i 3
「In [nn]」や、「Out[nn]」といった表記が所々に見られると思いますが、 これらは、入力履歴と出力履歴です。
これらはいつでもアクセスできるようになっています。
In [22]: 123*2 Out[26]: 246 In [23]: In[22] '123*2\n' In [24]: Out[26] Out[28]: 246
Outには値が記録され、Inには入力文字列そのものが記録されていきます。
その他エイリアスの利用や登録、保存、呼び出しなどができたりします。 また、ログ機能も便利そうですね。
Windowsではシェルの選択肢が少ないのが悲しいところでした。
「PyCrust」もよくできたシェルなんですが、 ブロッキングな関数やメソッドを実行してしまうと 表示出力もブロックしてしまうので実用上困ることが多いのです。
おそらく私のコマンドプロンプトはこれがデフォルトになるでしょう。