当前位置: 首页 > 知识库问答 >
问题:

无法获取 VS 代码以将参数从启动.json 传递给 Python

胡飞鹏
2023-03-14

我无法弄清楚如何让 VS 代码 mac 使用我在这里圈出的右侧的调试按钮,使用我在 launch.json 文件中定义的参数开始调试我的 Python 脚本。我能够识别我的论点的唯一方法是,如果我转到菜单并选择“运行|“开始调试”,或者如果按 F5。

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

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

可视化工作室代码:如何使用参数调试 Python 脚本

为了清楚起见,这里是我的launch.json文件,它可以像预期的那样与F5一起工作。上面我用红色圈出的按钮不起作用

共有1个答案

庄嘉
2023-03-14

2022年5月,微软技术支持部门就vscode python的github问题更新

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

我刚刚在VS代码1.67.1上测试了它,它的工作原理。文档似乎指出,如果您添加此“标志”,则为F5或Run

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

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

首先,这个按钮来自哪里并不明显。我已经注意到这个问题,以及微软,所以他们可以改进他们的文档。安装没有扩展名的 VS Code 时,此按钮不存在。但是,一旦您加载了第一个Python文件,微软就会敦促您安装官方的“微软Python扩展”,然后该按钮就会显示出来。在我的脑海中,我以为这是一个本机 VS Code 按钮,当您安装了语言调试器时会显示该按钮。当我删除所有扩展时,除了微软Python扩展之外,我确信这是VS代码的一部分。

上面的答案错误地指出这是按钮的正确行为。事实并非如此。微软已经证实了这一点,如果你阅读了第2338号问题(“python.terminal.launchArgs的文档不清楚”),会有一个回复说:

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

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

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

 类似资料:
  • 问题内容: 是否可以使用反射API将参数传递给Java中的方法? 是否可以使用诸如AspectJ之类的AOP库来实现这一目标? 我在Android上运行。 。 问题答案: 是否可以使用诸如AspectJ之类的AOP库来实现这一目标? 当然可以。这是AspectJ中典型的初学者练习,如下所示: 现在,您只需要编写一个方面即可拦截所有方法执行(以及可选的构造函数执行,如下所示): 运行时,此方面将打印

  • 我有一个片段a,包含一个片段B。 当片段A处于onActivityCreated生命周期中时,我想从片段A向片段B传递一个参数(因为我有一个来自viewmodel的数据,该数据此时到达)。 在我的片段B中,我无法得到这个论点。我有一个空异常。 你有办法解决我的问题吗? 这是我的代码 片段A 片段B fragment_a.xml

  • 问题内容: 对于上面的动画CSS代码,我想知道是否有任何方法可以从Javascript 传递和作为参数传递。 问题答案: 使用CSS变量,您可以轻松地做到这一点:

  • 是否可以将选项从azkaban工作流传递到基础职务代码? 我有这样的东西,它有点适用于硬编码/预先知道的日期,但我希望有一个选项来指定执行流时的日期: 谢了,沙拉特

  • 问题内容: 使用Python的DB API规范,您可以将参数的参数传递给execute()方法。我的语句的一部分是WHERE IN子句,并且我一直在使用元组填充IN。例如: 但是,当我遇到参数元组只是1个项目的元组的情况时,执行将失败。 编程错误:错误:“)”或附近的语法错误。第 13行:ID为(3,)的WHERE 我怎样才能使元组正确地使用子句? 问题答案: 编辑:请,正如@rspeer在评论中

  • 我最近开始学习Swift,遇到了一个关于闭包的问题。我试图将开车的参数传递给func travel并收到错误消息:无法将类型'()'的值转换为预期的参数类型'()- 有人能善意地建议吗?赞赏!