使用Python Extension for Visual Studio Code,您可以使用#%%
在Python代码中定义代码单元:
#%%
a = 1
breakpoint()
b = 2
然后,您可以单击“运行单元”,VS Code将打开Python Interactive窗口并运行当前单元。不幸的是,如果您在上方运行单元格,则将由于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代码中单击装订线以添加断点来替换断点,可以(两种)兼得两者:
但是我更喜欢用代码编写断点。有关支持此案的任何想法?
答案 0 :(得分:1)
我刚刚发现了这个被低估的库xdbg。我在Python 3.7上运行了一些烦人的异常,但是在VS Code中的交互模式下,它运行良好。
除了使用classic Python debugger in VS Code运行导入的Notebook外,我认为xdbg
是一个有趣的选择。请注意,在交互模式下工作时,基本上是在构建Python脚本,因此您可以非常简单地使用调试器。唯一的缺点是,每次运行调试器时,脚本都是从头开始的(如果启动脚本加载大量数据,可能会很烦人。)
我很想在VS Code中为交互式Python控制台提供调试选项,但似乎他们还不支持它。
希望这会有所帮助。