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

Yul*_* Ao 12 python visual-studio-code

这是我在vs代码中使用的python扩展:python扩展.

当我使用扩展程序提供的调试功能时,如果需要从命令行输入,它将挂在那里并且什么也不做.

在哪里可以输入值来跨越vs代码中的输入语句?

Igo*_*gor 12

让它工作诀窍在于扩展程序(Don Jayamanne的Python)维基页面.您必须"externalConsole": truelaunch.json文件的"name": "Python"部分中包含设置.

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

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

以下是使其工作的步骤:

  1. 在Debug窗口(Ctrl + Shift + D)中,按小齿轮图标打开(或生成)launch.json文件.它将放入.vscode您在VS代码中选择作为"打开文件夹"的文件夹中的目录中.
  2. 您必须将pythonPath 参数添加到第一个配置块.这需要让调试器工作.
  3. 您还必须向externalConsole同一个块添加和参数.这是使调试器接受输入所需的.在调试时,将在VS Code之外打开一个单独的窗口,否则效果很好.
  4. 添加两个设置后,块应该看起来像这样.我没有必要在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"
        ]
    },
    
    Run Code Online (Sandbox Code Playgroud)

  • 换句话说,是“ RTFM”。:) (3认同)
  • 这是公认的答案,但由于弃用,请参阅其他评论!`“控制台”:“集成终端”` (2认同)

小智 10

externalconsole指令已弃用.请console改用并以这种方式表明您对外部的偏好:

"console": "externalTerminal"
Run Code Online (Sandbox Code Playgroud)

应用程序输出(和输入)将转到一个单独的窗口,因此VS Code调试控制台仍然是一个纯python提示符,您可以在其中评估断点期间的内容.