Python - 调试Python代码的方法
调试(debug)
- 将可疑环节的变量逐步打印出来,从而检查哪里是否有错。
- 让程序一部分一部分地运行起来。从核心功能开始,写一点,运行一点,再修改一点。
- 利用工具,例如一些IDE中的调试功能,提高调试效率。
Python CMD
python -m trace -t <py file>
python -m dis <py file>
- 内置trace模块:打印所有执行的语句
- 内置dis模块:分析字节码
Linux
strace -p pid # 用系统命令跟踪系统调用
PyCharm Debug
PySnooper
- 允许执行以上相同的操作,只需为要调试的函数添加一个装饰器即可,而不需要构建正确的 print 打印。
- 将得到函数的详细日志,包括运行了哪些代码行、何时运行以及何时更改了局部变量。
- 使用简单,可以在任何庞大的代码库中使用,而无需进行任何设置。只需添加装饰器,并为日志输出地址指定路径,方法是将其路径指定为第一个参数。
参考信息
- 常用的Python调试工具:http://blog.jobbole.com/51062/
- Python 程序如何高效地调试?:https://www.zhihu.com/question/21572891
- Python 代码调试技巧:https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/
- python调试:http://www.cnblogs.com/frchen/p/5752763.html
Python - 调试Python代码的方法的更多相关文章
- Python自动生成代码工具
项目中有一个需求,对一个基类而言,拥有一个比较方法和拷贝方法,某些地方需要频繁地对这两个方法进行调用.对于所有子类而言,需要重写这两个方法,并在其中维护类内一些成员变量.例如有一个变量m_iMyVal ...
- python调试方法
之前调试python程序都是用print参数,感觉有点弱爆啊,最近发现python也有类似C语言gdb的工具pdb,记录下pdb的使用方法和心得. 先找了段简单的测试程序: 复制代码 !/usr/bi ...
- 【转载】PDB命令行调试Python代码
转载自这里. (博主按:PDB调试python代码和用GDB调试c++代码很类似) 你有多少次陷入不得不更改别人代码的境地?如果你是一个开发团队的一员,那么你遇到上述境地的次数比你想要的还要多.然而, ...
- 在PyCharm中以root权限运行和调试python代码
python中有的代码可能需要su权限,如 import os os.mkdir('/media/xxx/disk_a') 如果在交互式环境中使用,需要以sudo的方式启动python.而在PyCha ...
- 调试python 程序的几种方法总结
程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误 ...
- [置顶] 如何在Python IDLE中调试Python代码?
好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...
- Python -- Effective Python:编写高质量Python代码的59个有效方法
第 1 章 用 Pythonic 方式来思考 第 1 条:确认自己所用的 Python 版本 python --version import sys print(sys.version_info) p ...
- 最简单方法远程调试Python多进程子程序
Python 2.6新增的multiprocessing,即多进程,给子进程代码调试有点困难,比如python自带的pdb如果直接在子进程代码里面启动会抛出一堆异常,原因是子进程的stdin/out/ ...
- “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境
Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...
随机推荐
- Pyhon入门基础(1)---Pycharm安装及破解
一.下载安装 1.首先我们可以对比一下社区版和专业版的区别: 2.下载地址:https://www.jetbrains.com/pycharm/download/ 当我们开发的项目比较大的时候通常会涉 ...
- svn2个小问题的解决
Revision file (r615) lacks trailing newline /svndata/your_project/db/revs /svndata/your_project/db/r ...
- AX_SysTableBrowser
sysTableBrowser sysTableBrowser = new sysTableBrowser(); ; sysTableBrowser.setAllowEdit(true); sy ...
- jieba库的使用和好看的词元
一.jieba库的使用与说明 1.jieba库基本介绍 jieba库是优秀的中文分词第三方库 -中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 ...
- 2T以上磁盘格式化
1.安装软件 对于 Debian/Ubuntu 用户, 使用 APT-GET 命令或者 APT 命令来安装 parted #apt-get install -y parted 对于 RHEL/Cent ...
- bgfx入门练习3——编译自定义Shader
马个鸡,总算编译过了自定义Shader,在此感谢自己,感谢自己,以及感谢自己.没有自己的努力,我是不可能解决这个问题的,自己真是太叼了.妈的智障!!! 管方那屎一样的make工具根本没用,反正我是折腾 ...
- sjms-3 结构型模式
结构型模式 适配器模式 内容:将一个类的接口转换成客户希望的另一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.两种实现方式:类适配器:使用多继承对象适配器:使用组合 角色 ...
- 转发对python装饰器的理解
[Python] 对 Python 装饰器的理解的一些心得分享出来给大家参考 原文 http://blog.csdn.net/sxw3718401/article/details/3951958 ...
- selenium自动化常用函数
前段时间弄一个测试框架,满足公司简单网站的测试,整合了一个函数模块,包括常用的截图.邮件发送.测试报告生成,具体代码如下 import smtplib from BSTestRunner import ...
- Oracle简单查询实例
--查询不重复的职位 select distinct job from emp; --查询年薪,起别名,别名不要用单引号括起来 as nianxin from emp sal; --以这样的形式显示具 ...