【问题标题】:Python in VS Code: Not stopping at breakpointsVS Code 中的 Python:不在断点处停止
【发布时间】:2021-05-08 04:14:28
【问题描述】:

我正在尝试调试一个简单的 Python 程序,该程序读取 CSV 并在 VS Code 中写入一个新程序。当我设置断点时,它会被跳过。我可以使用breakpoint() 并获得基本的 Python 调试器,但我更希望能够使用 VS Code 调试器。我找到了这个SO postthis documentation,但都没有解决这个问题。我在 Windows 上,Python 版本 3.9.1。我不是经验丰富的 Python 开发人员,因此很可能我遗漏了一些明显的东西,但我已经完成了 .NET 开发的公平份额。

更新 1:launch.json 和代码

launch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "stopOnEntry": true,
            "justMyCode": false
        }
    ]
}

对于代码,我在各处设置了断点以使其正常工作,但这是我的main.py。我已经在h.get_approvers() 行上尝试了一个断点:

import adp
import hierarchy
import expensify
import sys

h = hierarchy.Hierarchy()
h.get_approvers()

更新 2:调试时的终端输出

Loading personal and system profiles took 664ms.
PS C:\Users\...\OneDrive - ZoomInfo\Dev\Sandbox\PyTest> & C:/Python39/python.exe "c:/Users/.../OneDrive - ZoomInfo/Dev/Sandbox/PyTest/main.py"        
Hello world
PS C:\Users\...\OneDrive - ZoomInfo\Dev\Sandbox\PyTest>

【问题讨论】:

  • 我个人在我的 MacOS 上没有遇到过 VSCode 的问题。你有没有看过官方文档code.visualstudio.com/docs/editor/debugging
  • TERMINALPROBLEMS 窗格中是否有任何有用的错误?
  • @RazzleShazl 我按照官方文档中的 Python 特定说明设置调试器。这是我上面的第二个链接。终端或问题窗格中没有错误。
  • 我没主意了。如果有帮助,这是我的launch.jsonpastebin.com/RAtkYMFJ
  • 请发布您的launch.json,您的代码示例/部分,以及您在哪一行放置了断点。没有这些东西,这只是猜测。

标签: python visual-studio-code


【解决方案1】:

更新 该问题已关闭,我已收到与Python version 3.9.3 (64 bit) 相关的确认。

https://github.com/microsoft/vscode-python/issues/15865

原帖

这让我发疯了,需要进一步调查,但我注意到了

Python 3.9.3 64 bit >> 跳过断点

Python 3.9.2 64 bit >> 按预期工作

我已多次复制此内容,以确保我不只是通过简单的卸载/重新安装来解决问题。

我为此提出了一个问题,我会在找到正确的根本原因后立即更新此回复,但现在这最终解决了我的问题……尽管我并不满意。

https://github.com/microsoft/vscode-python/issues/15865

【讨论】:

    【解决方案2】:

    我注意到在您提供的终端信息中,唯一使用的路径是“python.exe”和文件“main.py”路径。

    在 VS Code 中,Python 代码的调试功能由 Python 扩展提供。因此,在调试python脚本时,会使用“python解释器”(python.exe)、“python扩展”(.vscode\extensions\ms -python.python-2021.1.502429796\pythonFiles\lib\python\debugpy)和“python脚本”(.py file)。

    当我点击VS Code右上角绿色的运行按钮时,VS Code终端显示的路径只有python.exe".py" file:运行代码,不会停留在断点处。

    当我单击F5 或“Start Debugging”按钮时:调试代码将停留在断点处。

    如果还是不行,请尝试重新安装 Python 扩展并重新加载 VS Code。

    参考:Python debugging in Visual Studio Code

    【讨论】:

    • 首先,我只想对您为此付出的所有时间表示感谢。我真的很感谢你的帮助。为了回应您的回答,我发现“开始调试”(与绿色的“运行”按钮相反)也可以正常工作;唯一的问题是它实际上并没有使用断点。它总是停在第一行。所以我现在可以使用它,但是如果我想在我的代码中间设置一个断点,我不能。另外,我已经尝试重新安装 Python 扩展并重新加载 VS Code。
    • @Mike Caputo -这很奇怪。您是否安装并使用过其他 VS Code 扩展?请尽量禁用,以免影响python扩展的调试功能。
    猜你喜欢
    • 2021-12-23
    • 2019-11-09
    • 2020-02-17
    • 2019-05-14
    • 2019-03-31
    • 2020-01-01
    • 1970-01-01
    • 2011-03-16
    • 2019-03-19
    相关资源
    最近更新 更多