Visual Studio Code 调试控制台中的 pydevd 警告

mkn*_*nja 28 python debugging pydev visual-studio-code

我已经搜索了一段时间但找不到任何相关问题。

当使用带有 Python 扩展的 Visual Studio Code 来调试大型元素时,计算表示或获取属性可能需要一些时间。

在这些情况下,会出现如下警告:

pydevd 警告:计算...(DataFrame)的 repr 很慢(花了 0.84 秒)

打印到调试控制台(另请参阅https://www.pydev.org/history_pydev.html)。

更烦人的是,左下角会出现一个弹出窗口。

有什么方法可以禁用这些警告,特别是有关此警告的弹出窗口?

我或多或少尝试了有关 Visual Studio Code 调试中的日志记录和警告的所有内容。

一个最小的例子看起来像

import pandas as pd

df = pd.read_csv('file of 1GB')

df
Run Code Online (Sandbox Code Playgroud)

该警告不是特定行上的警告,而是每次使用大对象时调试器发出的警告(例如,仅打印或使用 df.some_operation() 操作)。

  1. 断点处警告的屏幕截图
  2. 每次在调试控制台中打印对象时发出警告的屏幕截图

小智 33

正如 Fabio Zadrozny 所建议的,您可以将环境变量 更改PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT为首选时间。

我通过将以下行添加到Visual Studio Code 中的“ launch.json ”文件来修复此问题。

"env": {"PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT": "2"}
Run Code Online (Sandbox Code Playgroud)

所以我的“ launch.json ”看起来像这样:

...
"launch": {
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "env": {"PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT": "2"}
        }
    ]
}
...
Run Code Online (Sandbox Code Playgroud)


Fab*_*zny 8

您可以在此处设置一个环境变量以在报告超时之前更改超时。

请注意,默认值为 0.15 秒(使用较小的数字是因为在某些情况下,在 repr 期间会出现数千个如此小的延迟,并且调试器可能会出现卡住的情况,而实际上是因为用户代码太慢而无法计算其 repr )。

您可以通过设置环境变量来更改它,例如:

PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT=2

(这会将超时更改为 2 秒)。

请注意,这里真正的解决方案是 pandas 改进其repr实现,以便速度更快......