python spyder - 仅调试当前单元格或选择?

问题描述 投票:0回答:4

类似于这些(非常有用!)两个功能:

“运行当前单元格” “运行选择或当前行”

是否可以通过调试来做到这一点?我不想每次调试时都从大型脚本文件的顶部开始。

我使用的是 Spyder 版本 3.2.4

python debugging spyder
4个回答
3
投票

如果您使用 IPython 作为解释器,则可以使用 IPython 中的魔法

%pdb
在遇到错误时自动启动
pdb

然后您可以“运行当前单元”并在需要时进入调试器。

例如我有一个简单的脚本:

my_var = 4
raise ValueError

现在,在 IPython 终端中,我首先运行

%pdb
,然后运行我的脚本。

In [4]: my_var = 4
   ...: raise ValueError
Traceback (most recent call last):

  File "<ipython-input-4-31dc119cb1f3>", line 2, in <module>
    raise ValueError

ValueError

> <ipython-input-4-31dc119cb1f3>(2)<module>()
      1 my_var = 4
----> 2 raise ValueError


ipdb> 

我有可用的调试器。


2
投票

现在您有“调试”->“调试单元”选项。或者 Alt+Shift+Return


0
投票

您可以使用 pdb 命令

j(ump)
到达正确的行。

例如

debugfile()
jump 100

将调试器带到脚本的第 100 行(如果第 100 行不可执行,则在几行之后)。从那里您可以照常继续。


0
投票

有关调试单元解决方案的更多详细信息:

首先,您需要使用 #%% 分隔符将代码拆分为单元格,然后您可以选择运行或调试单元格。在下面的示例中,您运行第一个单元,然后调试第二个单元:

#%% SOME TIME CONSUMING CODE TO EXECUTE
...
...
#%% CODE TO DEBUG
...
© www.soinside.com 2019 - 2024. All rights reserved.