【问题标题】:How do you debug imported Jupyter notebooks in VS Code?如何在 VS Code 中调试导入的 Jupyter 笔记本?
【发布时间】:2019-01-24 16:40:09
【问题描述】:

使用Python Extension for Visual Studio Code,您可以使用#%%在您的Python代码中定义代码单元:

#%%
a = 1
breakpoint()
b = 2

然后您可以单击“运行单元”,VS Code 将打开一个 Python 交互窗口并运行当前单元。不幸的是,如果您运行上面的单元格,它将因为breakpoint() 行而失败。错误是:

StdinNotImplementedError: raw_input was called, but this frontend does not support input requests.

如果你注释掉断点,它会运行但不会在断点处停止:

#%%
a = 1
#breakpoint()
b = 2

如果您删除特殊的“运行单元”注释,它将在断点处停止,但您会丢失 Python Interactive:

a = 1
breakpoint()
b = 2

您可以(有点)通过单击 Visual Studio Code 中的装订线来添加断点来替换断点,从而获得两全其美:

但是,我更愿意在代码中编写断点。对支持这个案例有什么想法吗?

【问题讨论】:

  • 排水沟断点对我不起作用:P 我放了一个,然后运行单元格,但它并没有停止。它对你有什么作用?

标签: python visual-studio-code ipython


【解决方案1】:

我刚刚发现了这个被低估的库xdbg。我在 Python 3.7 上运行了一些恼人的异常,但它在 VS Code 中的交互模式下运行良好。

我认为xdbg 是一个有趣的选择,而不是使用classic Python debugger in VS Code 运行导入的笔记本。请注意,当您在交互模式下工作时,您基本上是在构建 Python 脚本,因此您可以非常简单地使用调试器。唯一的缺点是每次运行调试器时,脚本都会从头开始(如果您启动脚本时会加载大量数据,这可能会很烦人)。

我很想在 VS Code 中为交互式 Python 控制台提供调试选项,但他们似乎还不支持它。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    相关资源
    最近更新 更多