spyder单步调试--小白

    我是python小白,在工作过中也没机会用到python,一直使用的都是matlab和vs,被安利了python各种优势,才开始学习python。在学习python的过程中,难免要对代码各种单步调试,好发现在函数内部到底对数据都做了什么操作。无奈,习惯了matlab和vs的单步调试思路,摸索了好一会才明白spyder 的调试方法。如果各位大佬对spyder单步调试有什么独门绝学,还不吝赐教,多谢。


    1. 编写python代码

假设我已经有一段python代码,需要对该段代码进行单步调试,如下图


    2. 设置断点

这里很重要,比如我要测试代码中的split_dataset这个函数,在编辑器中调用这个函数,如36行所示,在调用函数的地方加入断点。

这里我要吐槽的一点就是单步调试只能在编辑器中进行,不能在console中执行。比如我把断点设置在函数split_dataset内部,比如26行的位置,在console中输入35,36行的内容,然后单步调试是进入不到断点的位置的,这里与matlab的不一样。也许是我操作不对,反正在console中测试断点我是没成功过。希望哪位大牛能指导一二。


3. 调试

如下图所示。设置好断点之后按ctrl+F5即进入调试模式。这里还要吐槽一点就是进入调试模式竟然一开始就停止在第一行,不像matlab或者vs那样,一开始就执行到断点所在位置。因为调试一开始进入到第一行,所以,按那个“》”符号(ctrl+F12)进入下一个断点位置,即我们设置的那个断点位置。执行到断点位置之后需要进入函数内部,则按ctrl+F11,如下图所示。注意截图里的高亮并不是因为单步到这里高亮的,而是我鼠标放在这里引起的高亮,spyder单步执行不会高亮单步的位置,单步的位置从下方的console窗口看。


这个图片25行有一个错误,是我截图的时候不小心按到了a键盘,删除a即可


单步调试

4. 不爽的地方

4.1 调试只能在editor中执行?

我不知道是不是我操作的问题,spyder不能像matlab那样,在command line窗口中调用某个函数,并且那个函数内部已经有了断点,调试的时候自动跳转到断点位置。spyder不可以,在console窗口中调用函数时,不会跳转到editor窗口中断点位置。

4.2 单步位置高亮

spyder单步到某一行时,不会引起这一行的高亮。

阅读更多
文章标签: spyder debug
个人分类: python
上一篇解决在windows下配置Matlab版本的DPM出现round函数重载错误的问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭