VSCode不显示python脚本错误输出

时间:2016-08-07 09:23:11

标签: python visual-studio-code

在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中查看这些错误并避免在它与控制台之间来回切换?

4 个答案:

答案 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)。