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
使用VSCode在Python中调试期间读取输入_Python_Visual Studio Code - Fatal编程技术网

使用VSCode在Python中调试期间读取输入

使用VSCode在Python中调试期间读取输入,python,visual-studio-code,Python,Visual Studio Code,下面是我在vs代码中使用的python扩展: 当我使用扩展提供的调试功能时,如果需要从命令行输入,它将挂起,什么也不做 在vs代码中,我可以在哪里输入值以跨过输入语句 在扩展的()wiki页面上。您必须在launch.json文件的名称“:“Python”部分中包含“externalConsole”:true设置 扩展的wiki确认默认情况下不起作用: 这允许从控制台/终端窗口捕获输入 应用程序,这在标准VSCode调试器中是不可能的 以下是实现此功能的步骤: 在调试窗口(Ctrl+Shift+

下面是我在vs代码中使用的python扩展:

当我使用扩展提供的调试功能时,如果需要从命令行输入,它将挂起,什么也不做

在vs代码中,我可以在哪里输入值以跨过输入语句

在扩展的()wiki页面上。您必须在
launch.json
文件的
名称“:“Python”
部分中包含
“externalConsole”:true
设置

扩展的wiki确认默认情况下不起作用:

这允许从控制台/终端窗口捕获输入 应用程序,这在标准VSCode调试器中是不可能的

以下是实现此功能的步骤:

  • 在调试窗口(Ctrl+Shift+D)中,按小齿轮图标打开(或生成)launch.json文件。它将被放置在您在VS代码中选择为“打开文件夹”的文件夹中的
    .vscode
    目录中
  • 必须将
    pythonPath
    参数添加到第一个配置块中。这是调试器工作所必需的
  • 您还必须向同一块添加和
    externalConsole
    参数。这就是调试器接受输入所需的。调试时,将在VS代码外部打开一个单独的窗口,但在其他情况下效果良好
  • 添加这两个设置后,块的外观应如下所示。我不必更改launch.json文件其余部分的任何其他内容

    {
        "name": "Python",
        "type": "python",
        "request": "launch",
        "stopOnEntry": true,
        "program": "${file}",
        "pythonPath": "C:/Users/igor/Documents/Tools/WinPython-32bit-3.4.3.7Slim/python-3.4.3/python.exe",
        "externalConsole": true,
        "debugOptions": [
            "WaitOnAbnormalExit",
            "WaitOnNormalExit",
            "RedirectOutput"
        ]
    },
    

  • VS Code为您提供了一个使用Python控制台进行调试的选项

    您只需按Ctrl+Shift+D,然后单击蓝色播放图标旁边的向下箭头,然后选择
    Python控制台应用程序
    ,而不仅仅是
    Python
    ,如下所示:


    已弃用
    外部控制台
    指令。改为使用
    控制台
    ,并通过以下方式表明您对外部设备的偏好:

    "console": "externalTerminal"
    

    应用程序输出(和输入)将转到一个单独的窗口,因此VS代码调试控制台仍然是一个纯python提示符,您可以在断点期间对内容进行求值。

    控制台选项可以有以下任何值:内部控制台、集成终端、外部终端

    通常情况下,如果启动调试器,程序停止,它会在外部终端上显示提示
    按Enter键继续
    以访问程序的任何输出。如果您意外地出现语法错误,外部终端将关闭,不会留下任何消息

    当使用
    integratedTerminal
    选项时,终端将停留在那里并显示错误消息


    虽然我不知道这个externalTerminal是不是一个bug,但integratedTerminal选项在这种情况下似乎工作得更好。

    在Visual Studio代码中,单击绿色箭头右侧的拾取列表。然后选择Python:Terminal(外部)。当您启动脚本时,它将在外部窗口中运行,并允许您输入。

    更改launch.json并将其放入java代码中

    {
        "type": "java",
        "name": "Debug (Launch)",
        "request": "launch",
        "cwd": "${workspaceFolder}",
        "console": "externalTerminal",
        "stopOnEntry": false,
        "mainClass": "",
        "args": ""
    }
    
    控制台选项的更新信息 大多数评分较高的原始答案不再有效,或者不清楚应该设置什么以及如何设置。有关如何在
    launch.json
    中设置“Console”选项以及所有选项的详细信息,请参见下文

    您可以选择内部或外部终端设置,并在调试期间使用键盘输入。输出的一个选项,调试控制台,目前(2019年秋季)不允许键盘输入程序,尽管您可以始终使用调试控制台输入实时调试和代码命令

    设置可用选项的步骤如下所示


    打开调试配置
    launch.json
    文件
  • 单击调试图标(更新2020年初-现在是“运行”图标):打开调试侧栏(现在又称为“运行”侧栏,命令菜单名称也从“调试”更改为“运行”)
  • 在屏幕顶部,确保选择了“Python:Current File”。您可能需要选择或创建它(可能需要创建第一个调试/运行配置):
  • 单击上一步中选择的配置下拉列表右侧的档位图标。这将在编辑器中显示该配置的launch.json
  • “控制台”:
    选项更新为下述设置之一

  • launch.json中的有效
    “控制台”
    设置
    • “控制台”:“内部控制台”

      • 这是默认设置
      • 使用内部调试控制台
      • 自2019年10月起,不允许键盘输入
    • “控制台”:“集成终端”

      • 这会在每次调试时生成一个新的Python调试控制台终端窗口(我希望它会重用任何现有的终端窗口,但它不会-使用终端窗口右上角的垃圾桶符号删除旧的、未使用的终端)
      • 创建的终端类型基于您设置的默认终端类型(即命令窗口、bashshell等)
      • 所有标准输出都将在此终端中,如果程序正在等待,您可以输入键盘输入
      • 如果要在调试期间运行命令,可以切换到调试控制台
    选项卡。
  • “控制台”:“外部终端”