在launch.json中为Python指定参数

时间:2017-09-21 09:59:32

标签: visual-studio-code

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

"args": ["--arg1","value","--arg2"]

但是,我有一个很长的参数列表,它被格式化为以空格分隔的字符串。这样的事情:"--arg1 value --arg2"。我试着指定:

"args": ["--arg1 value --arg2"]

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

6 个答案:

答案 0 :(得分:7)

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

来自documentation

的引用
  

args - 传递给程序进行调试的参数。这个属性是   类型数组和期望单个参数作为数组元素

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

  

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

答案 1 :(得分:6)

请注意,在 $('.count').each(function () { $(this).prop('Counter',0).animate({ Counter: $(this).text() }, { duration: 2000, easing: 'swing', step: function (now) { $(this).text(Math.round(now * 100) / 100); } }); }); 中提供args的方式与描述的一样,直到需要键值args为止。

例如此命令

launch.json

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

$ python main.py --verbose --name Test 

https://code.visualstudio.com/docs/python/debugging

的“沃森”示例中找到几乎隐藏的提示

答案 2 :(得分:1)

AAargh ..我刚刚浪费了30分钟的时间,试图弄清楚如何用值明确定义参数。有时事情会奏效,有时总会失败。我只是在查看最后一条错误消息:// Use IntelliSense to learn about possible attributes.

结果是我在VScode开放编辑器中同时激活了我的python程序和文件launch.json。我正在对launch.json进行更改,但是在启动调试器之前无法单击python文件。

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

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

答案 3 :(得分:1)

这对我有用:

我为我正在使用的调试器(启动器)定义了一个变量('workspace_path')。

设置 -> 扩展 -> 机器人框架 -> 机器人变量 Robot: Variables

编辑文件'settings.json' -> settings.json 并添加变量(例如:'workspace_path')

运行 -> 打开配置 -> 编辑文件 'launch.json' launch.json 并添加参数 workspace_path(不带 cuotes)。

答案 4 :(得分:0)

尝试一下

"args": [   "-arg1 value1",
            "-argname2 value2"],

它与我的名为args的powershell一起使用

答案 5 :(得分:0)

虽然不多,但这是诚实的工作:

GIT_SSH

此打印:

import json

input_args = "--arg1 value --arg2"

vscode_args = list(input_args.split(" "))
print(json.dumps(vscode_args))

,您可以将其粘贴到 launch.json 文件中。

之所以这样做,是因为我有很多要转换的参数。这很方便。