使用VSCode在Python中调试期间读取输入
下面是我在vs代码中使用的python扩展: 当我使用扩展提供的调试功能时,如果需要从命令行输入,它将挂起,什么也不做 在vs代码中,我可以在哪里输入值以跨过输入语句 在扩展的()wiki页面上。您必须在使用VSCode在Python中调试期间读取输入,python,visual-studio-code,Python,Visual Studio Code,下面是我在vs代码中使用的python扩展: 当我使用扩展提供的调试功能时,如果需要从命令行输入,它将挂起,什么也不做 在vs代码中,我可以在哪里输入值以跨过输入语句 在扩展的()wiki页面上。您必须在launch.json文件的名称“:“Python”部分中包含“externalConsole”:true设置 扩展的wiki确认默认情况下不起作用: 这允许从控制台/终端窗口捕获输入 应用程序,这在标准VSCode调试器中是不可能的 以下是实现此功能的步骤: 在调试窗口(Ctrl+Shift+
launch.json
文件的名称“:“Python”
部分中包含“externalConsole”:true
设置
扩展的wiki确认默认情况下不起作用:
这允许从控制台/终端窗口捕获输入
应用程序,这在标准VSCode调试器中是不可能的
以下是实现此功能的步骤:
.vscode
目录中pythonPath
参数添加到第一个配置块中。这是调试器工作所必需的externalConsole
参数。这就是调试器接受输入所需的。调试时,将在VS代码外部打开一个单独的窗口,但在其他情况下效果良好李>
{
"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
文件
“控制台”:
选项更新为下述设置之一
launch.json中的有效“控制台”
设置
“控制台”:“内部控制台”
- 这是默认设置
- 使用内部调试控制台
- 自2019年10月起,不允许键盘输入
“控制台”:“集成终端”
- 这会在每次调试时生成一个新的Python调试控制台终端窗口(我希望它会重用任何现有的终端窗口,但它不会-使用终端窗口右上角的垃圾桶符号删除旧的、未使用的终端)
- 创建的终端类型基于您设置的默认终端类型(即命令窗口、bashshell等)
- 所有标准输出都将在此终端中,如果程序正在等待,您可以输入键盘输入
- 如果要在调试期间运行命令,可以切换到调试控制台
选项卡。
“控制台”:“外部终端”
- 这会在VS代码进程之外生成一个单独的终端,作为代码在运行或调试时运行的终端
- 外部终端将是操作系统的默认类型(Windows 10的命令窗口)
- 此终端与VS代码分开,通常会在程序终止后添加一个
按任意键继续…
提示,以便在输出消失之前查看/复制任何输出。