概要
前回の続き
前回で、pudbスゲーってなって、いろいろ見てみると ipython とも連携できるみたい。
PuDB/IPythonIntegration - Andreas Klöckner's wiki
試してみる
てことで、前回の環境には ipython いれてなかったので入れる。
$ conda install ipython Solving environment: done ## Package Plan ## environment location: /Users/xxxx/anaconda3/envs/pudb added / updated specs: - ipython The following NEW packages will be INSTALLED: appnope: 0.1.0-py36hf537a9a_0 decorator: 4.1.2-py36h69a1b52_0 ipython: 6.2.1-py36h3dda519_1 ipython_genutils: 0.2.0-py36h241746c_0 jedi: 0.11.0-py36_2 parso: 0.1.1-py36hc90e01c_0 pexpect: 4.3.0-py36h427ab81_0 pickleshare: 0.7.4-py36hf512f8e_0 prompt_toolkit: 1.0.15-py36haeda067_0 ptyprocess: 0.5.2-py36he6521c3_0 simplegeneric: 0.8.1-py36he5b5b09_0 six: 1.11.0-py36h0e22d5e_1 traitlets: 4.3.2-py36h65bd3ce_0 wcwidth: 0.1.7-py36h8c6ec74_0 Proceed ([y]/n)? Preparing transaction: done Verifying transaction: done Executing transaction: done
ipython を起動。
$ ipython Python 3.6.4 |Anaconda, Inc.| (default, Dec 21 2017, 15:39:08) Type 'copyright', 'credits' or 'license' for more information IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help. In [1]:
上のwikiみると %pudb というマジックコマンドを使えるようにするために
import pudb.ipython
とする必要があるとのこと。
In [1]: import pudb.ipython In [2]:
何も出力でませんが、これで%pudb
というマジックコマンドが使えるようになってます。
てことで、前回と同じドウデモイイサンプルを ipython 経由でデバッグしてみる。
In [1]: import pudb.ipython In [2]: %pudb pudb_sample.py
以下のようになります。
オケ。素晴らしい。
一応ヘルプも。
In [5]: %pudb? Docstring: Debug a script (like %run -d) in the IPython process, using PuDB. Usage: %pudb test.py [args] Run script test.py under PuDB. File: ~/anaconda3/envs/pudb/lib/python3.6/site-packages/pudb/ipython.py
上記ページみると、import pudb.ipython
の部分は ipython の設定ファイルに書いておくと
毎回打ち込まなくていい状態になるよって記載されていますね。
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場