当我的程序运行引发异常的行时,有没有办法启动IPython shell或提示?
我最感兴趣的是引发异常的范围(和子范围)中的上下文,变量.像Visual Studio的调试,当抛出异常但没有被任何人捕获时,Visual Studio将停止并给我调用堆栈和每个级别的变量.
你认为有一种方法可以使用IPython获得类似的东西吗?
编辑:-pdb启动IPython 的选项似乎没有做我想要的(或者我可能不知道如何正确使用它,这是完全可能的).我运行以下脚本:
def func():
z = 2
g = 'b'
raise NameError("This error will not be caught, but IPython still"
"won't summon pdb, and I won't be able to consult"
"the z or g variables.")
x = 1
y = 'a'
func()
Run Code Online (Sandbox Code Playgroud)
使用命令:
ipython -pdb exceptionTest.py
Run Code Online (Sandbox Code Playgroud)
这会在引发错误时停止执行,但会给我一个IPython提示符,其中我可以访问脚本的全局变量,但不能访问函数func的局部变量.pdb只在我在ipython中直接输入导致错误的命令时调用,即raise NameError("This, sent from the IPython prompt, will trigger pdb.").
我不一定需要使用pdb,我只想访问里面的变量func.
编辑2:已经有一段时间了,IPython的-pdb选项现在正如我想要的那样工作.这意味着当我提出异常时,我可以返回范围func并读取其变量z …
在gdb中,您可以通过Cc中断(暂停)程序并继续.
你能在pdb中这样做吗?
我正在为Windows上的ffmpeg制作一个漂亮的小Python GUI前端(一个专门用于将视频转换为iPhone友好格式并自动将其导入iTunes并标记它),我希望它能够工作以便你可以如果你愿意,暂停进程并恢复它.
由于我将ffmpeg作为一个单独的进程启动,显而易见的解决方案是程序暂停进程(我知道可以在Windows中使用,Process Explorer可以执行此操作),但我无法弄清楚如何执行此操作.有没有人知道如何在Python中这样做?