32

To ease debugging from Ipython, I include the following in the beginning of my scripts

from IPython.Debugger import Tracer
debug = Tracer()

However, if I launch my script from the command line with

$ python myscript.py

I get an error related to Ipython. Is there a way to do the following

if run_from_ipython():
    from IPython.Debugger import Tracer
    debug = Tracer()

This way I only import the Tracer() function when I need it.

2 Answers 2

59

This is probably the kind of thing you are looking for:

def run_from_ipython():
    try:
        __IPYTHON__
        return True
    except NameError:
        return False
Sign up to request clarification or add additional context in comments.

1 Comment

More detailed IPython configuration detection (whether pylab is loaded and in inline mode) is discussed here: stackoverflow.com/questions/15341757/…
13

The Python way is to use exceptions. Like:

try:
    from IPython.Debugger import Tracer
    debug = Tracer()
except ImportError:
    pass # or set "debug" to something else or whatever

1 Comment

+1 is more common in Python to try things instead of testing things

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.