异常堆栈跟踪在 PyCharm 中不可单击

问题描述 投票:0回答:1

PyCharm 突然改变了在运行选项卡上显示堆栈跟踪的方式,并且不再让我单击异常(或其他任何地方)并转到错误文件的特定点。

我该如何解决这个问题?

在 OSX Sonoma、PyCharm 2022.2.3(社区版)上运行

Stack is plain colored text instead of clickable links

python pycharm stack-trace torchmetrics
1个回答
3
投票

简短的回答:消除

pretty_errors
包的所有(直接或间接)导入。

中等答案

如果您在项目中使用

torchmetrics
包,并尝试使用
pretty_errors
,则以下操作之一应该有效:(1) 只需从 Python 环境中卸载
pretty_errors
包,(2) 更新
torchmetrics
到不再使用
pretty_errors
的版本。

如果您不使用

torchmetrics
,您可能需要识别使用
pretty_errors
包的任何其他包并消除
pretty_errors
的相应导入。

长答案

我遇到了同样的问题,控制台输出的外观和行为完全相同。就我而言,我可以追溯到在项目中使用包

torchmetrics
,而项目又导入了包
pretty_errors
pretty_errors
包以您所经历的方式更改堆栈跟踪(比较项目站点上的屏幕截图)。这是
torchmetrics/__init__.py
中导入
pretty_errors
的相应代码(源代码中的第 17-18 行):

if package_available("pretty_errors"):
    import pretty_errors  # noqa: F401

当我在本地注释掉这些行后,堆栈跟踪的外观和行为再次与往常一样。

上面我写了“已导入”,因为

torchmetrics
的当前源代码不再使用
pretty_errors
– 正是因为它使堆栈跟踪可能无法使用 – 请参阅相应的 pull requestcommit GitHub。因此,在某些时候,最好的解决方案可能是更新项目中的
torchmetrics
。然而,在撰写本文时,没有
torchmetrics
的最新版本
pretty_errors
尚未发布。不过,目前,只需从您的环境中卸载
pretty_errors
就可以解决问题。特别是,它不会破坏
torchmetrics
,因为无论如何,
pretty_errors
的导入都是有条件的(参见上面的代码片段)。

如果你的项目中没有使用

torchmetrics
,那么它一定是另一个依赖于
pretty_errors
的包,或者你自己直接导入了
pretty_errors
。识别罪魁祸首应该不是那么难,相应的解决方案应该始终消除使用
pretty_errors

© www.soinside.com 2019 - 2024. All rights reserved.