在Ubuntu 16.04中使用Python3和Visual Studio代码(Python extension已安装)。 我写了一些基本的脚本:
def mainMethod():
what()
#connectToDevice()
if __name__ == "__main__":
mainMethod()
当我通过点击F5在Visual Studio代码中调试它时,我在调试控制台中看不到任何带有错误的输出:
追踪(最近一次通话): 文件“main.py”,第9行,in mainMethod() 在mainMethod中输入第5行的“main.py” 什么()
NameError:名称'what'未定义
如果我在控制台中运行python3 main.py
,则会显示输出。
如何在VSCode中查看这些错误并避免在它与控制台之间来回切换?
答案 0 :(得分:4)
我仍然无法一直看到Debug Console
中的输出,但我可以通过在VSCode的Integrated Terminal
文件中设置此选项在launch.json
中看到它。该文件如下所示:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python virtual env",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"console": "integratedTerminal",
"program": "${workspaceRoot}/main.py",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
],
"pythonPath": "${workspaceRoot}/env/bin/python3"
}
]
}
核心线是"console": "integratedTerminal"
。另请注意,此配置使用Virtual Environment文件夹中的解释器,并且启动的文件始终为main.py
,而不是从活动编辑器运行文件的默认选项。
编辑:似乎后来的版本解决了这个问题所以上面的解决方法不再适用
答案 1 :(得分:1)
在2018年2月对VS Code的更新中,此问题似乎已完全解决。因此您不需要对默认配置进行任何更改,因为集成的调试终端最终会在发生错误时打印错误。
答案 2 :(得分:0)
对我来说,稍微好一点的方法就是添加“console”:“externalTerminal”而不是internalTerminal。这会在调试时打开一个新的终端,但它更清晰,几乎自动关闭。
答案 3 :(得分:0)
在我的情况下,我有一个类似的问题是 Python Linter 没有显示错误。
我的错误是,我在 VirtualEnv 处于活动状态时打开了 VS Code。什么命令
<块引用>代码。
要修复我关闭 VS Code,删除 de .vs 文件夹,停用 de VirtualEnv,然后打开 VS Code,然后打开 VirtualEnv。
大功告成!,问题解决。就我而言,其他解决方案是安装 linter(如果我没记错的话,pylint 是 vscode 的默认 linter)。