Python 程序如何高效地调试?
程序员文章站
2022-03-27 12:29:03
...
现在我在debug python程序就只是简单在有可能错误的地方print出来看一下,不知道python有没像c++的一些IDE一样有单步调试这类的工具?或者说各位python大神一般是怎么debug自己的python程序的?
应该用过 IPython 吧?想象一下,抛出异常时自动把你带到 IPython Shell 是不是很开心?而且和普通的IPython不同,这个时候可以调用 p (print), up(up stack), down(down stack) 之类的命令。还能创建临时变量,执行任意函数。
事实上这是可以实现的, 而且很简单,不过你要先安装 IPython。然后把以下代码保存为 `crash_on_ipy.py`
import pdb
pdb.set_trace()
将上面2行加入到需要加断点的代码处,运行时,执行在此处即可中断,单步、继续、查看变量值等功能都有,不妨help下。 推荐PyCharm
不错的IDE,designed for python~ ,支持win,linux,maxos
支持断点调试,自带连接器(GitHub,Mantis,Jira,Bugzilla)
如果不考虑多语言混合编程,优于eclipse。
界面如下图:
个人使用体验不错,不过在macos系统下,配置interpreter要稍微折腾下。
官网传送门:http://www.jetbrains.com/pycharm/
一图胜千言,左上是调用栈,右上是变量值,底部是当前运行到那行代码,比print之类的调试方式效率高太多了。
用的是eclipse+pydev python -m pdb your.py 我最近使用了pudb,感觉比pdb的更加友好一些。linux下命令行安装很简单:
回复内容:
这个要怒答一发。应该用过 IPython 吧?想象一下,抛出异常时自动把你带到 IPython Shell 是不是很开心?而且和普通的IPython不同,这个时候可以调用 p (print), up(up stack), down(down stack) 之类的命令。还能创建临时变量,执行任意函数。
事实上这是可以实现的, 而且很简单,不过你要先安装 IPython。然后把以下代码保存为 `crash_on_ipy.py`
import sys
class ExceptionHook:
instance = None
def __call__(self, *args, **kwargs):
if self.instance is None:
from IPython.core import ultratb
self.instance = ultratb.FormattedTB(mode='Plain',
color_scheme='Linux', call_pdb=1)
return self.instance(*args, **kwargs)
sys.excepthook = ExceptionHook()
想要类gdb的功能,可以使用pdb,例如:import pdb
pdb.set_trace()
将上面2行加入到需要加断点的代码处,运行时,执行在此处即可中断,单步、继续、查看变量值等功能都有,不妨help下。 推荐PyCharm
不错的IDE,designed for python~ ,支持win,linux,maxos
支持断点调试,自带连接器(GitHub,Mantis,Jira,Bugzilla)
如果不考虑多语言混合编程,优于eclipse。
界面如下图:
个人使用体验不错,不过在macos系统下,配置interpreter要稍微折腾下。
官网传送门:http://www.jetbrains.com/pycharm/
一图胜千言,左上是调用栈,右上是变量值,底部是当前运行到那行代码,比print之类的调试方式效率高太多了。
用的是eclipse+pydev python -m pdb your.py 我最近使用了pudb,感觉比pdb的更加友好一些。linux下命令行安装很简单:
pip install pudb
常年print+type的路过~
必须是ipython。调试程序的最佳时刻是程序出错的时候,有时候运行出了错误之后再调用调试器重现一遍可能错误又不能复现了,或者是再现错误需要很长的运行时间。而在ipython里运行程序可以在出错的第一时间进行调试,查看堆栈里的内容,绝对是方便之极。
试了下vs2015的py组件,感觉不比pycharm差
常年vim或者textmate. 调试print.dir, type等。再搞不懂就pdb..声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
上一篇: 介绍图灵机器人php API_PHP教程
下一篇: PHP组合模式第二中实现方法
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论