猿问

如何在 VS Code 中调试导入的 Jupyter Notebook?

使用Visual Studio Code的Python 扩展,您可以使用#%%以下命令在 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 中的装订线来添加断点来替换断点,从而获得两全其美的效果:

但是,我更愿意在代码中编写断点。关于支持这个案例的任何想法?


当年话下
浏览 324回答 1
1回答

DIEA

我刚刚发现了这个被低估的库xdbg。我在 Python 3.7 上运行了一些烦人的异常,但它在 VS Code 中的交互模式下运行良好。我认为这xdbg是一个有趣的替代方案,而不是使用VS Code 中的经典 Python 调试器运行导入的 Notebook 。请注意,当您在交互模式下工作时,您基本上是在构建 Python 脚本,因此您可以非常简单地使用调试器。唯一的缺点是每次运行调试器时,脚本都会从头开始(如果您开始脚本加载大量数据,这可能会很烦人)。我很想在 VS Code 中为交互式 Python 控制台提供调试选项,但似乎他们还不支持它。希望这可以帮助。
随时随地看视频慕课网APP

相关分类

Python
我要回答