如何在Python中执行"如果从ipython运行"测试?

Vik*_*mma 28 python ipython

为了简化Ipython的调试,我在脚本的开头添加了以下内容

from IPython.Debugger import Tracer
debug = Tracer()
Run Code Online (Sandbox Code Playgroud)

但是,如果我从命令行启动我的脚本

$ python myscript.py
Run Code Online (Sandbox Code Playgroud)

我收到了与Ipython相关的错误.有没有办法做到以下几点

if run_from_ipython():
    from IPython.Debugger import Tracer
    debug = Tracer()
Run Code Online (Sandbox Code Playgroud)

这样我只需要在需要时导入Tracer()函数.

Tom*_*ham 52

这可能是你正在寻找的东西:

def run_from_ipython():
    try:
        __IPYTHON__
        return True
    except NameError:
        return False
Run Code Online (Sandbox Code Playgroud)

  • 更详细的IPython配置检测(无论是加载pylab还是以内联模式)都在这里讨论:http://stackoverflow.com/questions/15341757/how-to-check-that-pylab-backend-of-matplotlib-runs-inline/17826459#17826459 (3认同)

Jan*_*dec 13

Python的方式是使用异常.喜欢:

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

  • 在Python中,+1更常见于尝试而不是测试事物 (2认同)