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

新手上路,请多包涵

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

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

vs代码中输入语句哪里可以输入值来越过input语句?

原文由 Yulong Ao 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 708
2 个回答

让它 工作的技巧 在扩展的( Don Jayamanne 的 Python )wiki 页面上。您必须在 launch.json 文件的 "name": "Python" 部分中包含 "externalConsole": true 设置。

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

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

以下是使其工作的步骤:

  1. 在“调试”窗口 (Ctrl+Shift+D) 中,按小齿轮图标打开(或生成)launch.json 文件。它被放置在 .vscode 目录中,该目录位于您在 VS Code 中选择作为“打开文件夹”的文件夹中。
  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"
       ]
   },

原文由 Igor 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 "console": "externalTerminal"

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

原文由 Daniel Singer 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题