如何在Debug模式下从VS将命令行参数传递给Python?

How do I pass command line arguments to Python from VS in Debug mode?

我正在使用适用于Visual Studio的Python工具。 (注意,不是IronPython。)

我需要处理从命令行传递到模块的参数。 通过在代码窗口中右键单击并选择"从调试开始",我了解了如何在Debug中启动模块。 但是这种方法永远不会提示我输入命令行参数,并且len(sys.argv)总是== 1。

如何在调试模式下启动模块并向其传递参数,以便sys.argv具有多个成员?


  • 通过右键单击项目并选择"属性",或从"项目"菜单中选择"属性",转到项目属性。

  • 单击"调试",然后将参数输入"脚本参数"字段。

  • 保存。


  • 步骤显示在此处链接的图像中:https://i.stack.imgur.com/Hx5tf.png

  • 在VS Code中进入调试模式
  • 单击设置图标(齿轮图标)。如果不存在,将创建launch.json
  • 在json中的任何配置中,添加args json参数:

    {
    " name":" Python:终端(集成)",
    " type":" python",
    " request":"启动",
    " stopOnEntry":是的,
    " pythonPath":" $ {config:python.pythonPath}",
    " program":" $ {file}",
    " cwd":",
    " console":" integratedTerminal",
    " env":{},
    "参数":[
    " input2.csv",
    " output2.csv"
    ],
    " envFile":" $ {workspaceFolder} /。env",
    " debugOptions":[],
    " internalConsoleOptions":" neverOpen"
    }

  • 确保在调试时选择该环境


    我通过在脚本的第一行上放置一个断点并在VS中打开"即时"窗口(您可以在脚本上下文中执行命令)来解决此问题。然后我跑

    1
    2
    import sys
    sys.argv += 'arg1 arg2 --arg3'.split()

    1.如果您正在使用anaconda,请从anaconda navigator启动vscode。

    2.然后从文件夹中打开python文件。

    3.然后转到debug选项并单击添加配置,然后将启动launch.json文件,该文件中有"控制台":" integratedTerminal"行,对此行进行注释并添加"控制台":" none"并添加" args":[""您的命令行参数"]并保存。

    4.调试或运行您的python文件。
    见下面的链接。如何在vscode中添加命令行参数?
    https://code.visualstudio.com/docs/python/debugging


    您要从调试下拉菜单中选择"使用Python Interactive执行项目"。键盘快捷键是Shift + Alt + F5。当您执行此操作时,将在屏幕底部打开一个名为Python Interactive的窗口,您将看到打印的语句以及从程序输入的所有提示。

    但是,这不允许您也进入调试模式。它可以是另一个。