是否可以通过调试在IPython中运行命令?

cul*_*rón 15 python debugging ipython

以下是我在IPython中的行为:

> import my_module
> import ipdb
Run Code Online (Sandbox Code Playgroud)

现在,我的模块缺少任何可执行代码,它只声明类.所以我想发表一个声明:

> g = my_module.Graph()
> f = open('test.osm')
> g.from_osm(f)
Run Code Online (Sandbox Code Playgroud)

我想在Graph.from_osm中放置一个断点,而不编辑文件.我不想把后面的行放到文件中去做python -m ipdb ....我只想运行命令和调试.

这可能吗?

补充:我明白了,有可能

%run -d script_name
Run Code Online (Sandbox Code Playgroud)

要么

> import pdb
> pdb.run('statement')
Run Code Online (Sandbox Code Playgroud)

但它是不可能做ipdb.run('statement'),有没有.runipdb!

iva*_*eev 5

因为IPython 3.2.2%debug如果给定一个参数(一行或一个单元格),魔术会在调试器下执行它。

  • 它在执行任何操作之前中断,让您有机会设置断点和/或开始单步执行代码。
  • 并且它接受一个--breakpoint参数来设置另一个断点(作为命令的一部分,它将保存在命令历史记录中,为您节省重复调用的输入)。