【发布时间】:2011-04-27 09:24:08
【问题描述】:
在写python代码的时候(主要是numpy + matplotlib),我一般只是在vim中输入代码,然后运行程序来测试一下:
python2 foo.py
有时,当这还不够,我需要更彻底地检查问题时,我只需在 ipython 中启动程序:
ipython -pylab foo.py,然后检查变量,测试一些命令等等。我喜欢ipython,因为标签完成和 bash 命令的可用性。
这对我来说已经足够好用了,但现在我的程序变得更大并且包含许多子例程(在多个文件中)。 ipython 方法不再起作用,因为它始终运行 完整代码 直到 foo.py 结束(当它进入 pylab shell 时)。我想做的是,在子例程中的给定行停止执行(可能在另一个文件中)并在那里检查变量。 即设置 pylab shell 启动的断点。
有没有简单的方法来适应我的ipython 工作方式?例如。停在bar.py的一行
ipython -pylab --stop-at bar.py:423 foo.py
或者,停在bar.py中的子例程名称处
ipython -pylab --stop-at bar.py:subroutine-name foo.py
【问题讨论】:
-
顺便说一下,
ipython的-pdb选项只有在捕获到异常时才调用 python 调试器。这不是我要找的。span>
标签: python numpy debugging matplotlib