Say I have an IPython session, from which I call some script:
> run my_script.py
Is there a way to induce a breakpoint in my_script.py
from which I can inspect my workspace from IPython?
I remember reading that in previous versions of IPython one could do:
from IPython.Debugger import Tracer; def my_function(): x = 5 Tracer() print 5;
but the submodule Debugger
does not seem to be available anymore.
Assuming that I have an IPython session open already: how can I stop my program a location of my choice and inspect my workspace with IPython?
In general, I would prefer solutions that do not require me to pre-specify line numbers, since I would like to possibly have more than one such call to Tracer()
above and not have to keep track of the line numbers where they are.
Advertisement
Answer
The Tracer()
still exists in ipython in a different module. You can do the following:
from IPython.core.debugger import Tracer def my_function(): x = 5 Tracer()() print 5
Note the additional call parentheses around Tracer
edit: For IPython 6 onwards Tracer
is deprecated so you should use set_trace()
instead:
from IPython.core.debugger import set_trace def my_function(): x = 5 set_trace() print 5