1. ホーム
  2. python

[解決済み] iPython notebookでデバッグする正しい方法は何ですか?

2022-06-02 21:16:14

質問

知っている限りでは %debug magic は1つのセル内でデバッグを行うことができます。

しかし、複数のセルにまたがって関数呼び出しをしています。

例えば

In[1]: def fun1(a)
           def fun2(b)
               # I want to set a breakpoint for the following line #
               return do_some_thing_about(b)

       return fun2(a)

In[2]: import multiprocessing as mp
       pool=mp.Pool(processes=2)
       results=pool.map(fun1, 1.0)
       pool.close()
       pool.join

試してみたこと

  1. を設定しようとしました。 %debug をセル1の最初の行に設定してみた。しかし、cell-2を実行する前でもすぐにデバッグモードになってしまいます。

  2. を追加しようとしたのですが %debug の直前の行に return do_some_thing_about(b) . しかし、その後、コードは永遠に実行され、決して停止しません。

ipythonのノートブック内でブレークポイントを設定する正しい方法は何ですか?

どのように解決するのですか?

使用方法 ipdb

でインストールします。

pip install ipdb

使用方法

In[1]: def fun1(a):
   def fun2(a):
       import ipdb; ipdb.set_trace() # debugging starts here
       return do_some_thing_about(b)
   return fun2(a)
In[2]: fun1(1)

一行ずつ実行する場合は n また、関数へのステップ実行には s また、デバッグプロンプトから抜けるには c .

利用可能なコマンドの全リストはこちら。 https://appletree.or.kr/quick_reference_cards/Python/Python%20Debugger%20Cheatsheet.pdf