无法让 VS Code 将参数从 launch.json 传递给 Python

Cannot get VS Code to pass arguments to Python from launch.json

我不知道如何让 Mac 的 VS Code 开始使用我在 launch.json 文件中定义的参数调试我的 Python 脚本,方法是使用调试按钮我在这里圈出的权利。唯一能让我的参数被识别的方法是,如果我进入菜单并 select“运行|开始调试”或者按 F5。

如何在使用该按钮时告诉 VS Code 使用我的 launch.json 文件???

如果您查看下面 link 中 Sourya Dey 的回答,这就是我写这篇文章的原因。 link F5 按钮必须缺少一些简单的设置或步骤。看来其他人也对此感到困惑。

为清楚起见,这是我的 launch.json 文件,它按 F5 键按预期工作。它不适用于我上面用红色圈出的按钮

在Visual Studio代码中,Start Debugging Command (F5) provides advanced debugging. Debug Python File Command用于执行基本的调试功能。您提到的行为表明不是错误,而是默认行为正常工作。

下图显示当使用 启动调试命令 (F5) 时参数被传递给程序。

Microsoft 技术支持更新 2022 年 5 月 github vscode-python

问题

您需要将此部分添加到您的 launch.json 文件中: “目的”:[“终端调试”]

我刚刚在 VS Code 1.67.1 上对其进行了测试,它可以正常工作。该文档似乎指出,如果您添加此“标志”,则 F5 或 运行 > Debug 将不会使用 launch.json 设置,但它们会使用。我已经要求他们更新他们的文档以使其更加清晰,因为它令人困惑。

============

我就此问题向 Microsoft VS Code 团队提交了错误,他们将我转到了 Microsoft Python 扩展组。然后我在那里提交了一个引用 VC 代码票的错误,它立即被分配给“区域调试分类”。我想这会在以后的版本中修复(我在 1.63.2)

首先,这个按钮的来源并不明显。我在 Microsoft 也注意到了这个问题,因此他们可以改进他们的文档。当您安装没有扩展的 VS Code 时,此按钮不存在。但是,一旦您加载了第一个 Python 文件,Microsoft 就会敦促您安装官方的“Microsoft Python 扩展”,然后该按钮就会出现。在我看来,我假设这是一个原生 VS Code 按钮,当你安装了语言调试器时它就会出现。当我删除除 Microsoft Python 扩展之外的所有扩展时,我确信这是 VS Code 的一部分。

上面的答案错误地指出这是按钮的正确行为。它不是。 Microsoft 已经确认了这一点,如果您阅读了问题 #2338(“python.terminal.launchArgs 的文档不清楚”),那么其中的回复说明:

“不幸的是,这就是 vscode 的工作方式。调试时,所有设置都从 launch.json 读取,并且使用非调试 settings.json 这适用于 vscode."

中的所有语言(扩展名)

所以现在,除了等待这个问题被修复之外,没有什么可做的。

最后,对于那些想知道我为什么要首先使用该按钮的人。大多数情况下,当我在 VS Code 中时,我使用键盘映射来开始调试。但是对于这个特定的项目,我要去其他外部 windows 并且当回到 VS Code 时,因为我已经在使用鼠标,我只是想点击那里方便。我没有让调试选项卡保持打开状态,它还有一个按预期工作的调试按钮。