PyCharm 突然改变了在运行选项卡上显示堆栈跟踪的方式,并且不再让我单击异常(或其他任何地方)并转到错误文件的特定点。
我该如何解决这个问题?
在 OSX Sonoma、PyCharm 2022.2.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 request 和 commit GitHub。因此,在某些时候,最好的解决方案可能是更新项目中的 torchmetrics
。然而,在撰写本文时,没有 torchmetrics
的最新版本 pretty_errors
尚未发布。不过,目前,只需从您的环境中卸载 pretty_errors
就可以解决问题。特别是,它不会破坏 torchmetrics
,因为无论如何,pretty_errors
的导入都是有条件的(参见上面的代码片段)。
如果你的项目中没有使用
torchmetrics
,那么它一定是另一个依赖于pretty_errors
的包,或者你自己直接导入了pretty_errors
。识别罪魁祸首应该不是那么难,相应的解决方案应该始终消除使用 pretty_errors
。