在launch.json中为Python指定参数

Toh*_*iko 13 visual-studio-code

我想在我的launch.json文件中指定用于调试的参数.我知道我可以做到以下几点:

"args": ["--arg1","value","--arg2"]
Run Code Online (Sandbox Code Playgroud)

但是,我有一个很长的参数列表,格式化为空格分隔的字符串.像这样:"--arg1 value --arg2".我尝试指定:

"args": ["--arg1 value --arg2"]
Run Code Online (Sandbox Code Playgroud)

但那没用.现在我的工作流程是获取参数字符串,通过python脚本运行它,将字符串更改为列表并将其复制粘贴到我的launch.json文件中.有一个更好的方法吗?

kno*_*obi 11

请注意,在launch.json您需要键值args之前提供所描述的作品中的args.

例如这个命令

$ python main.py --verbose --name Test 
Run Code Online (Sandbox Code Playgroud)

必须像这样在launch.json args行内编码

args:["--verbose","--name=Test"],
Run Code Online (Sandbox Code Playgroud)

https://code.visualstudio.com/docs/python/debugging的"Watson"示例中找到几乎隐藏的提示


Hom*_*per 9

不幸的是,没有办法做你想要的.参数只能作为数组传递,而不能作为带空格的字符串传递.带有空格的参数用引号括起来并作为一个整体参数传递.

文档中引用:

args - 传递给程序进行调试的参数.此属性的类型为array,并且将各个参数作为数组元素.

来自github上的一位开发人员的回答:

将命令行转换为"args"的规则很简单:由空格分隔的每个命令行参数都需要成为"args"属性的单独项.


zip*_*zit 7

AAargh.. 我只是浪费了我生命中的 30 分钟试图弄清楚如何用价值观清楚地定义论点。有时事情奏效,有时完全失败。我只是在看最后一条错误消息: // Use IntelliSense to learn about possible attributes.

原来我的 python 程序和文件 launch.json 在 VScode 打开编辑器中都处于活动状态。我正在对launch.json进行更改,但在启动调试器之前无法单击我的python文件。

哦!python 解释器在尝试运行 .json 文件时失败并不奇怪。需要仔细阅读完整的错误信息。(错误消息应该说......嘿,你这个大傻瓜......你应该在执行python时使用.py文件!)

信息在这里共享,以防其他人犯同样的愚蠢错误。

  • 从技术上讲,这根本没有回答最初的问题。然而,这正是我真正需要的信息。感谢你的分享! (4认同)
  • 这篇文章实际上对我很有帮助。您需要将焦点放在要调试的文件上,然后按 F5。谢谢! (2认同)
  • 彼得·莫滕森,真的吗?在发布此答案两年后,您的编辑是不恰当的,而且没有帮助。不管怎么说,还是要谢谢你。 (2认同)