写python的人一般都不太看重调试, 因为这是一门解释性语言, 在哪出错会立马在解释器里提示出来。但是, 以上观点只适用于小的脚本或者项目。因为我在接触目前项目之前, 我一直都是这么做的。

对于一个大的项目来说, 调试就不能这么做了, 这种大项目通常都是多进程或者多线程, 普通的调试基本没办法。通常会通过记录日志来调试, 记录日志。。这里就是我想说得一个坑。正常的项目里面都会有容错处理, 也就是各种try...except, 然后把抛出的异常写到日志, 出错的时候就可以通过看错误日志去定位信息。 但是, 抛出的异常通常只是一句话, 无法得到具体的错误代码行, 这在一个模块比较多的项目里简直就是噩梦, 你可能要花费很多时间去定位错误所在地方, 效率极其低下。 肿么办呢, python里面有一个模块叫traceback, 这个模块是干嘛的呢, 请看官方解释:This module provides a standard interface to extract, format and print stack traces of Python programs. It exactly mimics the behavior of the Python interpreter when it prints a stack trace. This is useful when you want to print stack traces under program control, such as in a “wrapper” around the interpreter.

也就是说, 这个模块就像一个缩小版的解释器一样, 可以跟踪代码运行栈。 简单来说, 可以看到代码详细出错信息, 包括在哪出错。怎么用呢, 就说一种用法, 我觉得够用了:import traceback

try:1/0

except Exception as e:traceback.print_exc(file=open('/tmp/error', 'wb'))

这样程序在抛出异常后, 就会将出错信息写到'/tmp/error'这个文件中, just enjoy it!

另外要说的一种方法是logging模块中用到的方法。

对于大型项目而言,用logging模块调试是一种更好的方法,日志集中管理。

要使用日志,首先要声明一个logger,具体怎么声明这里不再赘述,参见python官方文档或者google。

效果和traceback一样,代码如下:try:1/0

except Exception as e:logger.exception(e)

python调试_Python调试坑相关推荐

  1. python linux调试_python调试

    以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...

  2. python调试_Python 调试

    [简介调试工具] pdb 使用如下代码就相当于添加断点了: import pdb pdb.set_trace() #设置断点的地方,放置于程序中 ipdb 相对于python,我们更趋向于ipytho ...

  3. python逐行调试_python如何单步调试

    Python怎么单步调试?下面给大家介绍一下单步调试: 方法一:执行 python -m pdb myscript.py (Pdb) 会自己主动停在第一行.等待调试,这时你能够看看帮助. 方法二:在所 ...

  4. python 逐行调试工具_Python调试的三个工具

    对于 python 代码的调试我们通常都是使用 IDE 自带的调试功能.但是 IDE 提供的调试功能存在局限性,例如在测试服务器上调试代码,但是又不可能在测试服务器上安装 IDE 进行调试.这时我们就 ...

  5. python逐行调试_python单步调试

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文由腾讯云+社区自动同步,原文地址 https:stackoverflow.c ...

  6. 如何为 Python 添加远程调试能力而不修改系统代码

    最近写了一些关于 Python 远程调试的扯淡向博文,第一篇是「远程调试你的 Python 代码」,第二篇是「使用 VS Code 远程调试 Python 程序」.前些日子开了一个叫做「第八个手艺人」 ...

  7. Python语言学习:python语言代码调试—异常处理之详细攻略

    Python语言学习:python语言代码调试-异常处理之详细攻略 目录 python语言代码调试-异常处理 异常捕捉可以使用 try/except 语句 相关文章 Python3 错误和异常 | 菜 ...

  8. python的断点调试

    2019独角兽企业重金招聘Python工程师标准>>> http://http://control.blog.sina.com.cn/admin/article/article_ad ...

  9. 无法支持python程序的编辑运行和调试_解决pycharm的Python console不能调试当前程序的问题...

    解决pycharm的Python console不能调试当前程序的问题 更新时间:2019年01月20日 10:22:39 作者:simpleshao 今天小编就为大家分享一篇解决pycharm的Py ...

最新文章

  1. Windows Store获得Fluent Design加成
  2. 字节跳动自研万亿级图数据库 图计算实践 【太高级了,不是圈里的人,有简明见解的吗?】
  3. 托雷基亚vs_奥特曼:上海英雄魂展来袭,托雷基亚和泰迦等身雕塑国内首秀,泽塔CV压轴...
  4. noi 3531 判断整除
  5. [ERROR] InnoDB: ibdata1 different size (rounded down to MB)
  6. 【从C到C++学习笔记】类声明/公有私有保护成员/数据抽象和封装
  7. Android PopupWindow的简单说明
  8. 【android自定义控件】ProgressBar自定义
  9. 快速查找对方IP地址经典技巧汇总
  10. 4-google translate插件安装及使用
  11. 【题解】LuoGu4654:[CEOI2017]Mousetrap
  12. 深度学习入门,Keras Conv2D类参数详解
  13. Office Word 目录制作页码右对齐方法
  14. 2015年9月最新浏览器市场份额统计表
  15. 大学计算机构成课程论文,大学计算机课程论文
  16. H5页面打开微信小程序
  17. 舟山景区概况 舟山旅游项目介绍
  18. 【Python】司徒卢威函数
  19. C语言在开发中的应用博文汇总贴
  20. ERP-库存与存货-原料采购单

热门文章

  1. 求字符串的不重复字符的最长子串长度的问题
  2. Android之开发中用到的几个多线程解析
  3. Android之ViewPager使用(用美女做的背景,给你疲惫的眼睛视觉冲击)
  4. (三)python3 只需3小时带你轻松入门—— 变量的简单运算
  5. java gui 按键 数组_java GUI分配数组值
  6. mysql分页存储过程 分页查询语句_分页存储过程(用存储过程实现数据库的分页代码)...
  7. 基于文本知识库的强化学习技术——Learning to Win by Reading Manuals in a Monte-Carlo Framework
  8. 史上最会抄的数学家!把阿拉伯数字直接抄进自己的书里,连中国几千年前的名著都惨遭毒手.........
  9. 今年大学毕业照画风太清奇.....我忍不住笑出了声!
  10. 【直观详解】支持向量机SVM