我正在使用firefox的jupyter(或Ipython)笔记本,并希望在单元格中调试一些python代码.我正在使用'import ipdb; ipdb.set_trace()'作为一种断点,例如我的单元格具有以下代码:
a=4
import ipdb; ipdb.set_trace()
b=5
print a
print b
Run Code Online (Sandbox Code Playgroud)
用Shift + Enter执行后给出了这个错误:
--------------------------------------------------------------------------
MultipleInstanceError Traceback (most recent call last)
<ipython-input-1-f2b356251c56> in <module>()
1 a=4
----> 2 import ipdb; ipdb.set_trace()
3 b=5
4 print a
5 print b
/home/nnn/anaconda/lib/python2.7/site-packages/ipdb/__init__.py in <module>()
14 # You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
15
---> 16 from ipdb.__main__ import set_trace, post_mortem, pm, run, runcall, runeval, launch_ipdb_on_exception
17
18 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用从另一个stackoverflow问题引用的本教程来学习pdb ,而我正处于"入门"部分的第3步.
In [12]: %paste
# epdb1.py -- experiment with the Python debugger, pdb
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final
## -- End pasted text --
--Return--
> <ipython-input-12-48afa1c7ad72>(4)<module>()->None
-> pdb.set_trace()
(Pdb) l
1 # epdb1.py -- experiment with the Python debugger, pdb
2 import pdb
3 a = "aaa"
4 -> pdb.set_trace()
5 b = "bbb"
6 c = "ccc" …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Jupyter笔记本中调试一些代码。我尝试了3 4种不同的方法,它们都遇到相同的问题:
--Return--
None
> <ipython-input-22-04c6f5c205d1>(3)<module>()
1 import IPython.core.debugger as dbg
2 dber = dbg.Tracer()
----> 3 dber()
4 tst = huh.plot(ret_params=True)
5 type(tst)
ipdb> n
> y:\miniconda\lib\site-packages\ipython\core\interactiveshell.py(2884)run_code()
2882 finally:
2883 # Reset our crash handler in place
-> 2884 sys.excepthook = old_excepthook
2885 except SystemExit as e:
2886 if result is not None:
Run Code Online (Sandbox Code Playgroud)
正如你所看到的n命令,从我从理解pdb文件应执行(我假设下一行ipdb只是pdb适合于在IPython的工作,尤其是因为我找不到具体是指任何命令的文档ipdb,而不是pdb)
s也有同样的问题。这实际上是我想要执行的操作-进入plot通话(据我了解,这s是应该执行的操作),但是我所获得的与我所获得的完全相同n。我也尝试过r,但遇到了同样的问题。
我见过的每个示例都只是在命令后的行中使用Tracer()() …