Phi*_*p F 11 python debugging pycharm
非常简单的最小示例:
if __name__ == '__main__':
print("Still ok")
raise Exception("Dummy exception")
print("End of Program")
Run Code Online (Sandbox Code Playgroud)
我在使用Python 3.6的PyCharm 2019.2调试器中运行它时得到以下输出:
/usr/bin/python3.6 /home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 46850 --file /home/[...]/test_traceback.py
pydev debugger: process 18394 is connecting
Connected to pydev debugger (build 192.5728.105)
Still ok
Run Code Online (Sandbox Code Playgroud)
此时,调试器中断了执行流程,但调试器控制台中未显示Traceback和Exception消息。如果我在PyCharm 2018.1中运行相同的代码,则在命中断点时确实显示了这些权利。
当我打
,我得到了所需的输出,但是由于该过程结束,因此我再也无法在调试上下文中运行代码:
Traceback (most recent call last):
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 2060, in <module>
main()
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 2054, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 1405, in run
return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/pydevd.py", line 1412, in _exec
pydev_imports.execfile(file, globals, locals) # execute the script
File "/home/[...]/pycharm-community-2019.2/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/home/[...]/test_traceback.py", line 4, in <module>
raise Exception("Dummy exception")
Exception: Dummy exception
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
我的断点配置:
它适用于PyCharm(社区)2019.1.4:
似乎您遇到了(回归)错误:
影响v2019.2.1,计划在v2019.2.3中修复。
要解决此问题,您必须:
等待v2019.2.3(或任何其他具有修复程序的版本)发布,然后切换到该版本(可能需要(定期)检查[JetBrains.Blog]:发布公告)
恢复到不受该错误影响的(以前的)版本(正如我已经提到的:2019.1.4)
请注意:当遇到这种情况时,在(不太可能)问题尚不清楚的情况下,人们可以自己处理问题,进行一些调试并修复问题(也许可以提交带有修复到JetBrains)。检查[SO]:从 PyCharm 社区版中的鼠标右键单击上下文菜单运行/调试 Django 应用程序的 UnitTests?举个例子。
安装(在20190930上)最新补丁(v2019.2.3),并且回溯出现在PyCharm的控制台中(因此,错误已修复)。