VSCode:如何使用参数调试Python脚本

Fra*_*ani 20 python visual-studio-code

我正在使用VSCode来调试Python脚本.

按照本指南,我在launch.json文件中设置参数

在此输入图像描述

但是,当我按下Debug时,它表示我的参数无法识别:

在此输入图像描述

在VSCode使用时PowerShell,让我们使用相同的参数执行相同的文件:

在此输入图像描述

所以:相同的文件,相同的路径,相同的参数.在终端正在工作,在VSCode中没有.

我哪里错了?

小智 127

我还注意到,如果您通过单击如下所示的调试按钮来运行脚本 在此输入图像描述,则参数未通过。但是,使用Run -> Start Debugging(或其快捷方式F5)成功传递了参数。

  • 2023年了,这个bug依然存在。 (7认同)
  • 我也是,我一直在使用Python:在终端中运行Python文件...... (3认同)
  • 在过去的 30 分钟里,我一直在用头撞墙,想知道为什么按下右上角的按钮并没有读取我的脚本的论点。确实是阿格! (2认同)

小智 36

如果单击“调试 python 文件”未传递参数,则"purpose": ["debug-in-terminal"]launch.json文件中添加

{"version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true,
      "args": ["--experimentName", "Debugging"],
      "purpose": ["debug-in-terminal"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)


小智 34

我认为--City和奥克兰被用作单一的arg.也许尝试分开它们......

    "args": ["--city","Auckland"]
Run Code Online (Sandbox Code Playgroud)

  • 然后你像 "args: ["--ci​​ty", "Auckland", "--year", "2000"] (4认同)
  • 如果我有几个参数,比如 `--city Auckland --year 2000` 怎么办? (3认同)
  • 有人让nargs运行吗?args:[“ --my-n-args”,“ 4 5”]`不起作用:`error:参数-m /-my-n-args:无效的int值:'4 5'`编辑:我自己找到了它:`args:[“ --my-n-args”,“ 4”,“ 5”]` (2认同)

Sre*_*A R 15

--key1 value1 value2 --key2 value3 value4
Run Code Online (Sandbox Code Playgroud)

可以传递为

"args": ["--key1=value1", "value2", "--key2=value3", "value4"]
Run Code Online (Sandbox Code Playgroud)

(结合Pawan KumarChunde Huang的两个答案。)


flo*_*opp 9

Python项目文件夹路径.vscode中的文件launch.json,在Visual Studio Code中测试。F5

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "args": ["c", "pwd"],
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)


ing*_*net 9

还没有人提到这一点,所以我想我应该提供一个建议,可以节省您一些时间,当然也可以让您保持理智。我使用数组设置了 launch.json 文件args,但是当我运行调试器时,我无法让我的参数显示在终端中。

我所要做的就是出于某种原因退出并重新启动 VS Code。然后它就像冠军一样工作。


小智 8

在 Visual Studio 中,您可以以方便自然的方式传递多个参数:

--trail=0 --g=0 --V="HO" --save_interval=10 --verbose=True
Run Code Online (Sandbox Code Playgroud)

我只是不知道为什么他们不会在 Visual Studio Code 中支持这一点。一个一个地列出参数既麻烦又有点傻。他们只是将参数字符串传递给 Python 解析器,事情很容易完成。