Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 在用于Python的launch.json中指定参数_Visual Studio Code - Fatal编程技术网

Visual studio code 在用于Python的launch.json中指定参数

Visual studio code 在用于Python的launch.json中指定参数,visual-studio-code,Visual Studio Code,我想在我的launch.json文件中指定用于调试的参数。我知道我可以做到以下几点: "args": ["--arg1", "value", "--arg2"] 但是,我有一个非常长的参数列表,其格式为空格分隔的字符串。类似这样的内容:“--arg1值--arg2”。我试图具体说明: "args": ["--arg1 value --arg2"] 但那没用。现在,我的工作流

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

"args": ["--arg1", "value", "--arg2"]
但是,我有一个非常长的参数列表,其格式为空格分隔的字符串。类似这样的内容:
“--arg1值--arg2”
。我试图具体说明:

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

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

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

引自:

args—传递给程序以进行调试的参数。这个属性是有意义的 键入array,需要单独的参数作为数组元素

其中一位开发商的回答是:

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

示例:

Command:
tar -cvf test-14-09-12.tar /home/test/

Args:
"args": ["-cvf", "test-14-09-12.tar", "/home/test/"]
更新:

Command:
tar -cvf test-14-09-12.tar /home/test/

Args:
"args": ["-cvf", "test-14-09-12.tar", "/home/test/"]
我用代码片段找到了解决方案

可以将代码段添加到全局代码段或项目代码段,如下所述:

“args\u转换”:{
“范围”:“jsonc”,
“前缀”:“args_转换”,
“正文:“${1/(\”(.*?\”)|(“(.*?))|([^]+))()?/”$3$6$5\“${7:+,}/g}”
}
在需要在launch.json(或任何其他带有注释的json文件)中写入args的位置写入args_转换,按tab键,插入args,然后再次按tab键


但它可能无法正确地处理某些类型的参数,如果需要代码段修复,请在注释中写入错误。aargh。。我只是浪费了30分钟的时间试图弄清楚如何用价值来定义论点。有时事情成功了,有时完全失败了。我正在查看最后一条错误消息:
//使用IntelliSense了解可能的属性。

事实证明,我的python程序和文件launch.json都在VScode开放编辑器中处于活动状态。我正在对launch.json进行更改,但在启动调试器之前未能单击python文件

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


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

请注意,在
launch.json
中提供参数的工作方式与前面描述的一样,直到需要键值参数为止

例如,命令

$ python main.py --verbose --name Test
必须在launch.json参数行中编码,如下所示:

args:["--verbose", "--name=Test"],
在中的“Watson”示例中找到一个几乎隐藏的提示。

尝试以下操作:

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

它适用于我的PowerShell命名参数。

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

导入json
输入_args=“--arg1值--arg2”
vscode_args=list(输入_args.split(“”))
打印(json.dumps(vscode_args))
这张照片是:

[“--arg1”、“value”、“--arg2”]
您可以将其粘贴到launch.json文件中

我这样做是因为我有很多参数要转换。这很方便。

这对我很有用:

我为正在使用的调试器(启动器)定义了一个变量(“工作区\路径”)

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

编辑文件“settings.json”->并添加变量(例如:“workspace\u path”)


运行->打开配置->编辑文件'launch.json'并添加参数workspace\u路径(没有cuotes)。

为什么不能以正确的形式将参数提供给CS代码?那要做多少工作?这篇文章实际上对我很有帮助。您需要聚焦要调试的文件,然后点击F5。谢谢彼得·莫滕森,真的吗?在发布这个答案两年后,你的编辑是不合适的,也没有什么帮助。无论如何,谢谢。从技术上讲,这根本不能回答最初的问题。然而,这正是我真正需要的信息。谢谢分享!很高兴能列出一些例子,因为这是公认的答案:)(我知道这些都列在下面一个单独的答案中)谢谢,这很有效。这应该是公认的答案。