我刚刚安装了VS Code和Python扩展,但无法使调试器正常工作。每次我尝试使用调试器时,它都会跳过我设置的任何断点,并像平常一样运行程序。
我在装有Python 3.7.3和Python扩展程序的Windows 10 PC上使用VS Code。我按照此处(https://code.visualstudio.com/docs/python/python-tutorial)的说明在C:\ python_work \ hello中创建了一个名为“ hello”的测试文件夹,并在该文件夹中创建了一个名为“ hello.py”的程序。 hello.py如下所示。我尝试通过按绿色箭头和按F5来使用调试器,但似乎都无法使调试器正常工作。我的“ launch.json”文件也显示在下面。
hello.py:
msg = "Hello World!"
print(msg) # Breakpoint
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
},
]
}
我希望底部的栏变成橙色,并且程序在第二行停止,这样我就可以在预览窗格中检查局部和全局变量。相反,在程序运行时,底部栏保持橙色1/2秒,就像我按下“在终端中运行Python文件”一样,而没有在断点处停止。请帮忙!
答案 0 :(得分:22)
设置"justMyCode": false
使其在断点处停止:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Debug Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"stopOnEntry": true,
"justMyCode": false
},
]
}
答案 1 :(得分:3)
我遇到了同样的行为,并能够通过以下方式安装 Python 的虚拟环境来解决它:
[MyProjectFolder] \ venv
通过输入命令
python -m venv [MyProjectFolder]\venv
在控制台中。
VS Code 似乎完全期望这种文件夹结构。
在我直接在我的项目文件夹中安装 venv-folder-structure 之前,即
[MyProjectFolder] \ Scripts
[MyProjectFolder] \ Lib
[MyProjectFolder] \ Include
[MyProjectFolder] \ pyvenv.cfg
哪个不起作用并导致了所描述的调试问题。
仅供参考:VS Code 1.52.1 版和 Python 3.8.5
答案 2 :(得分:2)
如果您使用的是 pytest-cov
模块,您可能还想看看 pytest configuration settings 注意:
注意如果您安装了 pytest-cov
覆盖模块,VS Code 在调试时不会在断点处停止,因为 pytest-cov
使用相同的技术来访问源代码正在运行。为防止此行为,请在调试测试时将 --no-cov
包含在 pytestArgs
中,例如将 "env": {"PYTEST_ADDOPTS": "--no-cov"}
添加到您的调试配置中。
请参阅下面的示例配置文件 (launch.json
):
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Tests",
"type": "python",
"request": "test",
"console": "integratedTerminal",
"justMyCode": false,
"env": {"PYTEST_ADDOPTS": "--no-cov"}
}
]
}
答案 3 :(得分:0)
我从 Python 3.7 版升级到 3.9 版时遇到了同样的问题。后来发现老版本是32位的,我升级到的新版本是64位的,这显然是导致问题的原因。卸载 64 位版本并安装 32 位版本的 Python 3.9 解决了我的问题,然后我可以再次使用 Visual Studio Code 断点功能。
答案 4 :(得分:0)
我最近发现(2020 年 5 月 5 日)使用 Python 3.9 作为解释器,断点没有命中。安装 3.8,它会重新开始工作。
答案 5 :(得分:0)
从 Python 3.9 降级到 3.8 对我有用。
VC 代码 1.56.2 忽略了在 Windows 10 版本 20H2 上运行 Python 3.9 64 位的断点。安装 Python 3.8.10 64 位修复了该问题。我只需要在 VS 代码中选择 Python 3.8.10 解释器,它现在可以识别断点。不需要更改配置文件,例如,我不需要 "justMyCode": false
我意识到这是一个老问题,但我的谷歌搜索让我找到了它。许多以前的答案不再适用。因此,我将针对 2021 年登陆这里并尝试使用 3.9 的其他人发布此修复程序。