python之调试的那点事儿

本文中的调试仅仅是参考本人实际工作中自己调试的思路来阐述的,如有任何不正确之处,欢迎纠正。

【问题1】、将源码克隆到本地后,提示xxx文件导入错误

python之调试的那点事儿_第1张图片
提示导入错误

【解决思路】1、检查导入语句是否正确;2、使用pycharm编辑器时需要检查python工程的包文件是否设置根路径,如下图所示

python之调试的那点事儿_第2张图片
检查是否设置Source Root

如果不采用步骤2的编辑器,可以通过sys.path的方式去指定导入文件的路径(这里关于导入的内容不做过多解释,后续更新)

【备注】关于问题一其实更多的是依赖于实际经验的,这种情况遇到过一两次就会注意。

【问题2】数据库连接不上

python之调试的那点事儿_第3张图片
数据库连接失败

【解决思路】1、通过mysql客户端,手动连接是否成功;2、检查各个参数值是否正确

【问题3】出现问题时,实际工作中如何debug

python之调试的那点事儿_第4张图片
实际调试的部分代码

【场景描述】

1、通过对比关键字来判断接口的关键字参数是否存在并输出实际结果到数据库中

【预期结果】:更新数据库

【实际结果】:数据库未更新,提示code:9999的错误

【解决思路】:

1、直接对对比方法设置断点即在方法的首尾设置断点,示例如下图所示

python之调试的那点事儿_第5张图片
示例图

2、对断点内的模块进行“分割”。

例如“实际调试的部分代码”这张图可以看到,包含两部分内容,判断值是否存在并比较存在字段的值,其次更新数据库,那么此时可以将更新数据库注释掉,只看判断值这一部分,利用print将值打印,确定此部分是否运行正确,在确定更新数据库部分是否正确。

3、缩小断点范围,根据上述2中的分割,重新设置断点,对数据库的opone方法进行断点,查看调试界面的返回结果

4、在执行步骤3时,还验证了下sql语句是否有问题(这是在我还没有很好利用debug的时候的套路,实际这一步在debug时,也是可以看到sql的)

【备注】:

a、简单的来说通过print打印值,确认调用是否正确。

b、将可变参数的值暂时替换为常量。

c、同一方法内的内容分割,不同的方法会在同一方法中调用,分割后可以缩小范围,

d、利用编辑器进行debug。

e、从错误提示中提取有效信息,一般错误的首尾会明确指出。

f、拼写错误是比较常见的问题,在调试或者编写时需要注意。

你可能感兴趣的:(python之调试的那点事儿)