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

标签 python visual-studio-code vscode-settings vscode-debugger

我不知道如何让 VS Code for Mac 开始使用我在 launch.json 文件中定义的参数调试我的 Python 脚本,方法是使用我在此处圈出的右侧的调试按钮。唯一能让我的参数被识别的方法是转到菜单并选择“运行|开始调试”或按 F5。

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

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

Visual Studio Code: How debug Python script with arguments

VS Code for Mac

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

launch.json

最佳答案

Microsoft 技术支持 2022 年 5 月关于 vscode-python 的 github 问题的更新

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

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

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

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

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

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

“不幸的是,这就是 vscode 的工作方式。当调试时,所有设置都从 launch.json 中读取,并且使用非调试 settings.json 这适用于 vscode 中的所有语言(扩展)。”

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

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

关于python - 无法让 VS Code 将参数从 launch.json 传递给 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70357348/

相关文章:

visual-studio-code - 如何从 VScode 中的远程 session 打开本地终端?

javascript - VSCode - Handlebars 内的 JavaScript 片段 <script>

c# - 打字时如何设置 VSCode 以在 C# 和 C++ 中的新行上放置花括号?

python - 如何使用 API 和 Python 提取数据?

python - 如何解决 Docker 镜像中的 Tesseract "Failed loading language ' eng'"问题

java - 在 Visual Studio Code 中部署 Azure Function 不包含 .jar 文件

git - 如何使用 Visual Studio Code 作为 Git MergeTool 的默认编辑器,包括 3 向 merge

azure - 增加 Visual Studio Online 中的自动挂起时间

python - 如何在区域上方激活功能,在限制区域外保持事件状态

python - MySQL并行选择请求(python)