在VSCode中,Python调试器每次调试时都会启动一个新的终端
在Python和VS代码中调试时,每次调试时都会创建一个新的终端。代码每次只是不断地将终端添加到终端窗口的下拉列表中。我必须手动删除每个终端,或者在一段时间后删除一堆终端,否则代码最终会挂起 是否有停止此操作的选项设置?这是预期行为还是缺陷在VSCode中,Python调试器每次调试时都会启动一个新的终端,python,visual-studio-code,vscode-debugger,Python,Visual Studio Code,Vscode Debugger,在Python和VS代码中调试时,每次调试时都会创建一个新的终端。代码每次只是不断地将终端添加到终端窗口的下拉列表中。我必须手动删除每个终端,或者在一段时间后删除一堆终端,否则代码最终会挂起 是否有停止此操作的选项设置?这是预期行为还是缺陷 更新:这里是每次创建新调试终端时发生的情况的屏幕截图。这是终端窗口右侧的下拉列表,您可以使用ctrl-`(grave键、未移动的平铺或~键)打开或转到该窗口。它显示了正常的bash终端,这是一个Python终端,在每次运行脚本时都会被重用,但是3个Pyth
更新:这里是每次创建新调试终端时发生的情况的屏幕截图。这是终端窗口右侧的下拉列表,您可以使用ctrl-`(grave键、未移动的平铺或~键)打开或转到该窗口。它显示了正常的bash终端,这是一个Python终端,在每次运行脚本时都会被重用,但是3个Python调试控制台窗口除外。每次调试(F5)时都会创建一个新的Python调试控制台。因此,每次调试时,我都需要进入并手动删除一个Python调试控制台(点击右侧的垃圾桶图标)。在我意识到这一点之前,已经打开了20多个终端窗口 一个真正的解决方案:让终端随后退出! 终于看到了一个真正的解决方案(好吧,有点黑),-至少如果您使用GitBash作为默认终端 如果在调试配置中添加参数
&&
和exit
,调试终端将在程序结束后自动退出。但请注意,它会立即关闭终端和其中的所有文本(您可能需要在脚本末尾添加“按任意键结束程序”,以便有时间查看任何文本或类似内容)
注意:这仍然是一种黑客行为,并不总是有效-如果您点击调试器工具栏上的“重新启动”或“停止”按钮,它会成功
此方法的快捷方式
&&
基本上告诉Bash停止并等待调试任务完成,然后再继续执行其他命令,然后在调试会话结束后执行退出
,从而关闭终端
您可以按如下方式打开运行/调试配置来完成此操作:
launch.json
文件args:[“&&&”,“exit”]
添加一行,并确保在该行上方的末尾添加逗号李>
launch.json:
{
//使用IntelliSense了解可能的属性。
//悬停以查看现有属性的描述。
//有关更多信息,请访问:https://go.microsoft.com/fwlink/?linkid=830387
“版本”:“0.2.0”,
“配置”:[
{
“名称”:“Python:当前文件”,
“类型”:“python”,
“请求”:“启动”,
“程序”:“${file}”,
“控制台”:“集成终端”,
“参数”:[“&&”,“退出”]
}
]
}
注意1:在该答案处留下的注释表示您可能希望尝试“args”:[“\n”,“exit”,“0”]
,如果不起作用。这可能适用于不同的终端类型(Windows Cmd提示符、PowerShell、不同的Linux shell等)
注意2:如果需要添加其他参数,可以将它们作为字符串添加到列表中的“&&”参数之前。列表中前面放置的项将成为实际程序/脚本的参数
替代(原始)解决方案:使用调试控制台进行输出 经过一些搜索之后,我无法确定是否需要为每个调试启动一个新的终端,但是有一个解决方法 设置Python:Current文件的调试配置。在debug选项卡的顶部,单击gear图标打开launch.json 注意:下面的调试图标稍有更改,此选项卡现在称为
运行
,而不是调试
在launch.json中,将“控制台”
设置从默认的“integratedTerminal”
更改为“internalConsole”
,如下所示:
{“版本”:“0.2.0”,
“配置”:[
{“名称”:“Python:当前文件”,
“类型”:“python”,
“请求”:“启动”,
“程序”:“${file}”,
“控制台”:“内部控制台”
}
]
}
这将导致任何调试会话的所有输出只发生在调试控制台中,该控制台在每个会话中被清除和重用,而不是在每个会话中生成新的集成终端
缺点 最后,我返回到集成终端,寻找希望在控制台上进行用户输入的脚本,因为调试控制台不允许用户输入
在这种情况下,您只需要不断删除额外的调试会话—这有点麻烦。我在
integratedTerminal
选项上提交了一个问题/缺陷,每次生成一个新的终端,它都在这里的队列中:1)右键单击python代码2)单击“在终端中运行python文件”您可以在键盘快捷键preferenceHi@Gobrisebane中指定快捷键,该快捷键只会运行文件,而不会启动调试器(即菜单:运行->开始调试)