【问题标题】:PyCharm 2019.2 not showing Traceback on ExceptionPyCharm 2019.2 未显示异常回溯
【发布时间】:2020-01-02 12:02:28
【问题描述】:

非常简单的小例子:

if __name__ == '__main__':
    print("Still ok")
    raise Exception("Dummy exception")
    print("End of Program")

我在使用 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

此时调试器会中断执行流程,但在调试器控制台中不会显示回溯和异常消息。如果我在 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

我的断点配置:

【问题讨论】:

  • 但是……这就是它的工作原理?它抛出一个错误,你暂停。控制台中的 Traceback 实际上是 handler 所做的最后一件事。但是您在处理程序启动之前暂停它。您的断点是针对异常的,而不是针对处理程序内部(打印回溯的地方)或“在退出前停止”之类的东西。
  • 这篇文章可能有用:intellij-support.jetbrains.com/hc/en-us/community/posts/… 简写形式:检查__exception__ 变量以查看引发了哪个异常及其字段。
  • @h4z3 我期望的行为是我从旧 PyCharm 版本中习惯的行为。为了确认,我刚刚下载了一个新的 PyCharm 2018.1 执行程序,它确实在异常处停止,打印了异常消息和回溯,仍然让我在原地调试它。

标签: python debugging pycharm


【解决方案1】:

它适用于 PyCharm(社区)2019。1.4

您似乎遇到了(回归)错误:

会影响 v2019.2.1,并且计划在 v2019.2.3 中修复。 p>

要解决此问题,您必须:

  • 等待 v2019.2.3(或任何其他具有修复程序的版本)发布,然后切换到该版本(可能需要(定期)检查 [JetBrains.Blog]: Release Announcements
  • 恢复到不受该错误影响的(以前的)版本(正如我已经提到的:2019.1.4

@EDIT0

安装(在20190930上)最新补丁(v2019.2.3),并且回溯存在 PyCharm 的控制台(因此,该错误已修复)。

【讨论】:

  • 谢谢。这是我一直在寻找的正确答案。
  • 不客气!星期一当我重新启动我的笔记本电脑时,我会检查我当前安装的应用程序的更新,我通常会更新它们。感谢您的问题,我没有升级 PyCharm。我不会,直到这个问题得到解决。它并没有让我很困扰(因为我不太依赖这个功能),但仍然:)。
  • 该修复程序现已集成在 EAP 版本 2019.3 EAP build 193.3519.27 中,因此也将成为 PyCharm v2019.3 的一部分
【解决方案2】:

您是否在每个可执行行的开头检查了空格?有一次,我在纠正空格后就修复了它。

【讨论】:

  • 绝对不需要对空格做任何事情。我可以在旧的 PyCharm 中运行完全相同的程序,并且可以按预期工作。
猜你喜欢
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多