admin管理员组文章数量:1542381
如果你熟悉命令行调试工具(例如gdb、lldb),那么使用Python中的PDB将获得非常好的体验,PDB不仅支持项目启动时进行调用,也支持在Python shell中交互式调试;功能上,支持断点、步进、异常捕获和解决、变量查看、变量改写、栈查看甚至字节码查看等。
举个PDB断点调试的例子:
用文本编辑器新建一个文档,就命名为debug1.py吧,输入最简单的Python代码片段:
然后运行这个脚本,Windows下面这样运行 :
python debug1.py
然后执行到pdb.set_trace()这句后会自动进入断点调试模式,屏幕会显示类似的信息:
PDB显示目前的断点位置,然后你就可以使用PDB调试命令了。
Tips:其他常用命令有:
pp,打印
n,下一步,执行下一步
s,步进,一步步的执行
l,列出,显示断点周围的源代码
c,继续,继续程序的运行
r,返回,继续直到当前函数返回
由PDB引入的VIM、Emacs工具都能很好地实现类似lldb和gdb的效果。同时,结合IPython这一扩展功能shell,其中的魔法命令能够更好地帮助程序调试。这是一般*nix环境下常见的调试组合,配合配置良好的文本编辑工具都能实现不错的类IDE体验。PDB更能进行远程调试,即对远端(如服务器上正在运行着的Python代码)进行调试。几乎所有的debugger工具都是在PDB的功能基础上进行用户界面上的提升。
此外,对于部分框架,尤其是Web框架,进行调试往往需要结合具体的上下文环境(例如Django的开发调试测试需要上下文环境等),PDB交互式调试可以直接挂载在对应的交互环境中(如Django shell)。
Pudb
如果你觉得这样太原始,那么可以尝试pudb,它是基于控制台的debug图形化debugger工具,稍微比pdb直观一点,但仅可以在Linux下运行。
这个图形界面有点原始,不支持鼠标,所以不要用鼠标点。
二、图形界面下的程序调试
如果你更习惯于IDE的整体调试,也没有问题。很多支持Python的IDE,调试功能都十分强大,甚至轻量级编辑器也都具备完善的调试功能。接下来简单介绍几款图形化的IDE工具:
Visual Studio Code
VSC作为一个跨平台的重量级文本编辑器以及轻量级IDE,如今已经得到了越来越多开发者的喜爱,而Anaconda作为Python发行版集成环境,已将VSC作为推荐开发工具。
VSCode量级较轻,但只需要安装一个Python语言支持工具,摇身一变就能成为全功能Python IDE,智能感知、补全、重构、查找定义代码段等编辑功能一应俱全,而且调试功能也十分完整,能在调试模式中涵盖PDB的全部功能,并能在图形界面下简单地进行操作。
如果非要说一个VSCode的弱点的话,应该是其调试工具、解释器的配置没有具体的配置页面,需要通过配置文件来进行修改,这一点或许会给新手带来困惑。
Visual Studio
VS号称宇宙第一IDE,其Python开发工具自然也能带来非常好的体验。在VS2017中,Python开发环境就已经是可选择的安装选项了。对于许多曾经使用VS在Windows下进行其他语言开发工作的人而言,熟悉的快捷键、清晰的环境及不会特别夸张的资源消耗绝对是VS的加分点。
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化学习资料的朋友,可以戳这里无偿获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
朋友,可以戳这里无偿获取](https://bbs.csdn/topics/618317507)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
版权声明:本文标题:2024年Python最全Python 程序如何高效地调试?_1 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1727071034a1096174.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论