Viktiglemma
Viktiglemma

Reputation: 922

How can I do an "if run from ipython" test in Python?

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.

Upvotes: 32

Views: 6735

Answers (2)

Tom Dunham
Tom Dunham

Reputation: 5907

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

def run_from_ipython():
    try:
        __IPYTHON__
        return True
    except NameError:
        return False

Upvotes: 59

Jan Hudec
Jan Hudec

Reputation: 76366

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

Upvotes: 13

Related Questions