Visual Studio 代码 Python 调试器不会在子文件夹文件中触发断点
Visual Studio Code Python debugger does not trigger breakpoints in subfolder files
我在 Ubuntu 20.04 LTS 上使用 Visual Code 1.55.2。我有一个简单的问题,即如果它们位于我项目的子文件夹中,我将无法触发断点。这是我的 launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Main",
"type": "python",
"request": "launch",
"program": "Main.py",
"console": "integratedTerminal",
"cwd": "${fileDirname}"
}
]
}
我添加了cwd
属性并指定程序name
和file
为运行。所以现在,每当我点击我的调试配置时,除了一些断点被忽略之外,一切正常。这是我工作目录的副本:
.
├── subfolder
│ ├── subfile1.py
│ └── subfile2.py
├── file1.py
├── file2.py
├── file3.py
├── file4.py
├── Main.py
└── .vscode
└── settings.json
subfile1.py和subfile2.py中的所有断点都被忽略。
我曾尝试阅读 official documentation,但我无法很好地理解它。
感谢您的帮助!
---更新---
遗憾的是,我不允许分享我的代码,所以我只能通过文字或示例来描述问题。
也就是说,我刚刚完成了对这个问题的更多测试,我发现子文件夹本身并不是问题,但是,无论如何,调试器都会跳过我的代码中的断点行,我确信它已被读取断点行已正确列出在“运行 and Debug”选项卡,“breakpoints”部分,如下图示例(注意“Python: Main”配置文件内容如前一段所示):
事实上,当我决定用它调试这个项目而不是依赖 pyCharm 时,我的 VS 代码问题就开始了,后者工作正常,没有任何问题。为了提供更多上下文,我可以说我的项目涉及 PyQt5,因此它在屏幕上创建了一个交互式 window。我正在测试的代码部分应该在要求程序通过 GUI 上的按钮打开文件后触发(效果很好),然后我实际上从 OS 管理的文件资源管理器中选择了一个文件。可悲的是,断点没有触发。使用 pyCharm,一切都按预期工作:一旦我到达该特定行,代码就会停止。 VS 代码不会发生这种情况,因此调试器的行为不同,或者需要调整一些设置。我所知道的唯一 VS 代码“tweaking/settings 变量”是 launch.json
。
鉴于这些新见解,问题似乎更像是来自 IDE 的一种无响应,因为如果我在该特定文件的第一行设置断点,调试器实际上会停在那里。所以我接下来尝试的是保留两个断点(第一行的断点和“未触发”的断点),看看会发生什么:第一个断点起作用,第二个断点仍然被忽略。如果重要的话,我在两个 IDE 中都使用 anaconda“基础”环境及其解释器。
使用默认的调试配置并重试:
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
}
]
更多调试信息请查看Debugging and Python debug configurations in Visual Studio Code。
我在 Ubuntu 20.04 LTS 上使用 Visual Code 1.55.2。我有一个简单的问题,即如果它们位于我项目的子文件夹中,我将无法触发断点。这是我的 launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Main",
"type": "python",
"request": "launch",
"program": "Main.py",
"console": "integratedTerminal",
"cwd": "${fileDirname}"
}
]
}
我添加了cwd
属性并指定程序name
和file
为运行。所以现在,每当我点击我的调试配置时,除了一些断点被忽略之外,一切正常。这是我工作目录的副本:
.
├── subfolder
│ ├── subfile1.py
│ └── subfile2.py
├── file1.py
├── file2.py
├── file3.py
├── file4.py
├── Main.py
└── .vscode
└── settings.json
subfile1.py和subfile2.py中的所有断点都被忽略。
我曾尝试阅读 official documentation,但我无法很好地理解它。
感谢您的帮助!
---更新---
遗憾的是,我不允许分享我的代码,所以我只能通过文字或示例来描述问题。
也就是说,我刚刚完成了对这个问题的更多测试,我发现子文件夹本身并不是问题,但是,无论如何,调试器都会跳过我的代码中的断点行,我确信它已被读取断点行已正确列出在“运行 and Debug”选项卡,“breakpoints”部分,如下图示例(注意“Python: Main”配置文件内容如前一段所示):
事实上,当我决定用它调试这个项目而不是依赖 pyCharm 时,我的 VS 代码问题就开始了,后者工作正常,没有任何问题。为了提供更多上下文,我可以说我的项目涉及 PyQt5,因此它在屏幕上创建了一个交互式 window。我正在测试的代码部分应该在要求程序通过 GUI 上的按钮打开文件后触发(效果很好),然后我实际上从 OS 管理的文件资源管理器中选择了一个文件。可悲的是,断点没有触发。使用 pyCharm,一切都按预期工作:一旦我到达该特定行,代码就会停止。 VS 代码不会发生这种情况,因此调试器的行为不同,或者需要调整一些设置。我所知道的唯一 VS 代码“tweaking/settings 变量”是 launch.json
。
鉴于这些新见解,问题似乎更像是来自 IDE 的一种无响应,因为如果我在该特定文件的第一行设置断点,调试器实际上会停在那里。所以我接下来尝试的是保留两个断点(第一行的断点和“未触发”的断点),看看会发生什么:第一个断点起作用,第二个断点仍然被忽略。如果重要的话,我在两个 IDE 中都使用 anaconda“基础”环境及其解释器。
使用默认的调试配置并重试:
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
}
]
更多调试信息请查看Debugging and Python debug configurations in Visual Studio Code。