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

是否可以在IPython中通过调试运行命令?,python,debugging,ipython,Python,Debugging,Ipython,以下是我在IPython的行动: > import my_module > import ipdb 现在,我的模块缺少任何可执行代码,它只声明类。所以我想说一句话: > g = my_module.Graph() > f = open('test.osm') > g.from_osm(f) 我想在Graph.fromosm中放置一个断点,而不编辑文件。我不想将后几行放在文件中,也不想做python-mipdb…。我只想运行命令和调试 这可能吗 添加:我明白了,可

以下是我在IPython的行动:

> import my_module
> import ipdb
现在,我的模块缺少任何可执行代码,它只声明类。所以我想说一句话:

> g = my_module.Graph()
> f = open('test.osm')
> g.from_osm(f)
我想在Graph.fromosm中放置一个断点,而不编辑文件。我不想将后几行放在文件中,也不想做
python-mipdb…
。我只想运行命令和调试

这可能吗

添加:我明白了,可以

%run -d script_name


但是不可能执行
ipdb.run('statement')
,在
ipdb中没有
.run

也许IPython中的'magic'命令%debug和/或%pdb可以帮助您。

%debug
magic,如果给定参数(单行或单元格),则在调试器下执行

  • 它会在执行任何操作之前中断,从而使您有机会设置断点和/或开始单步执行代码
  • 它接受一个
    --breakpoint
    参数,该参数设置了一个以上的断点(作为命令的一部分,它将保存在命令历史记录中,为重复调用保存键入)

  • 不,这不是我想要的。他们都有一个例外。我只想一步一步地观察程序执行。从
    IPython 5
    开始,
    debug
    在执行任何操作之前停止,允许您设置断点和/或开始单步执行代码。IPython 6在异常处停止在ipdb 0.8中有一个
    。run
    。可能重复
    > import pdb
    > pdb.run('statement')