VSC Python :launch.json 中的必需参数和可选参数

VSC Python: required and optional args in launch.json

提问人:sab0 提问时间:11/15/2023 更新时间:11/16/2023 访问量:44

问:

我正在使用 Python 在 Visual Studio Code 中处理一个使用 .有可选参数和必需参数。代码如下所示:main(args)

import sys
import argparse

def main(args):
    print(args.mode)
    print(args.path)
    return 0

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--mode", type=str, choices=["opt1","opt2"], default="opt1")
    parser.add_argument("path", type=str)
    args = parser.parse_args()
    sys.exit(main(args))

现在,我想在VSC中调试代码,并为此过程使用文件来加快速度。如何为这两个参数正确设置 launch.json 文件?launch.json

目前我的样子是这样的:launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "something",
            "type": "python",
            "request": "launch",
            "program": "%{file}",
            "args": [
                "--mode","opt2",
                "path","~/some_path",
            ],
            "console": "integratedTerminal"
        }
    ]
}

每次启动调试过程时,我都会收到错误:有人知道我做错了什么吗?error: the following arguments are required: path

感谢您的帮助!

python visual-studio-code vscode-debugger

评论

1赞 rioV8 11/15/2023
"path"不是选项使用"--path"
1赞 JialeDu 11/17/2023
您应该通过单击答案左侧的勾选图标✅来接受答案,以便社区可以理解问题已得到解答。

答:

0赞 sab0 11/16/2023 #1

我现在找到了解决方案。所以我在这里犯了 2 个错误:

  1. 中的陈述是错误的argslaunch.json
  2. 指定的不会传递给调试器args

至 1

因为我需要一个可选的参数,例如 AND 必需参数,例如 正确的语法是:--modepathlaunch.json

"args": ["--mode=opt2", "~/path_to_some_folder"],

至 2

为了确保调试器正在使用中指定的启动选项,只需向其添加即可。launch.json"purpose": ["debug-in-terminal"]

评论

1赞 starball 11/16/2023
“to 2”仅适用于要在终端中调试文件的情况。使用“常规”启动配置时不行