一、python有调试工具pdb,可以用来进行代码调试。

pdb的常用命令说明:

l #查看运行到哪行代码 
n #单步运行,跳过函数 
s #单步运行,可进入函数 
p 变量 #查看变量值 
b 行号 #断点设置到第几行 
b #显示所有断点列表 
cl 断点号 #删除某个断点 
cl #删除所有断点 
c #跳到下一个断点 
r #return当前函数 
exit #退出

调试记录:

pdb设置断点可以在程序里加入:

import pdb

在需要设置断点的地方加入pdb.set_trace()

执行python -m pdb demo.py

import pdb
import os
import time
pdb.set_trace()
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
if __name__ == '__main__':
result_dir = './test_result'
pdb.set_trace()
if os.path.exists(result_dir):
shutil.rmtree(result_dir)
os.mkdir(result_dir)

执行样例

$ python -m pdb demo.py
> /homo/demo.py(2)<module>()
-> import pdb
(Pdb) n
> /home/demo.py(3)<module>()
-> import os
(Pdb) n
> /home/demo.py(4)<module>()
-> import ocr
(Pdb) n

二、cgitb代码调试跟踪

cgitb可以对运行的代码进行逐行输出,省去使用print进行log输出,个人建议cgitb在生产运行环境不要使用本方法,而是在开发的过程中进行调试,非常的方便。

cgitb的enable()函数的选项控制报表是否显示在浏览器中,以及报表是否记录到文件中供以后分析。

cgitb.enable([display[, logdir[, context[, format]]]])

import pdb
import os
import time
pdb.set_trace()
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
if __name__ == '__main__':
import cgitb
cgitb.enable(format = 'text')
result_dir = './test_result'
pdb.set_trace()
if os.path.exists(result_dir):
shutil.rmtree(result_dir)
os.mkdir(result_dir)

# import cgitb
# cgitb.enable(format = 'text')

linux操作系统下调试python代码方法的更多相关文章

  1. 在Linux下调试Python代码的各种方法

    这是一个我用于调试或分析工具概述,不一定是完整全面,如果你知道更好的工具,请在评论处标记. 日志 是的,的确,不得不强调足够的日志记录对应用程序是多么的重要.您应该记录重要的东西,如果你的记录足够好的 ...

  2. Linux操作系统下软件的安装方法大全

    一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...

  3. (收集)linux环境下乱码的解决方法

    **************************** 就是从数据库中取出来时,在存入linux的文件里时,在字符流时制定编码格式.代码如下: FileOutputStream fos=new Fi ...

  4. 【转载】PDB命令行调试Python代码

    转载自这里. (博主按:PDB调试python代码和用GDB调试c++代码很类似) 你有多少次陷入不得不更改别人代码的境地?如果你是一个开发团队的一员,那么你遇到上述境地的次数比你想要的还要多.然而, ...

  5. Linux 操作系统下为网卡配置ip

    Linux操作系统下为网卡配置ip by:授客 QQ:1033553122 1.   Linux单一网卡设置多IP的配置方法 在Linux下网卡接口逻辑名被称为eth0,eth1,eth2,..... ...

  6. (转)LINUX CENTOS7下安装PYTHON

    LINUX CENTOS7下安装PYTHON 原文:http://www.cnblogs.com/lclq/p/5620196.html Posted on 2016-06-27 14:58 南宫羽香 ...

  7. Linux 环境下安装python相关

    目录 Linux 环境下安装python相关 linux软件包管理工具之yum工具(如同pip3工具) yum源理解 下载阿里云的.repo仓库文件 ,放到/etc/yum.repos.d/ yum安 ...

  8. 尚学linux课程---10、linux环境下安装python

    尚学linux课程---10.linux环境下安装python 一.总结 一句话总结: 直接在官网下载python的源码包即可,然后在linux下安装 linux下安装软件优先想到的的确是yum,但是 ...

  9. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

随机推荐

  1. C# 字典 Dictionary 的 TryGetValue 与先判断 ContainsKey 然后 Get 的性能对比

    本文使用 benchmarkdotnet 测试字典的性能,在使用字典获取一个可能存在的值的时候可以使用两个不同的写法,于是本文分析两个写法的性能. 判断值存在,如果值存在就获取值,可以使用下面两个不同 ...

  2. 前端js判断移动端和PC端方法

    首先在js中键入如下代码 var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVers ...

  3. 30分钟全方位了解阿里云Elasticsearch(附公开课完整视频)

    摘要: 阿里云Elasticsearch提供100%兼容开源Elasticsearch的功能,以及Security.Machine Learning.Graph.APM等商业功能,致力于数据分析.数据 ...

  4. C\C++串口通信编程的一点技术记录

    新工作接的第一个活,要写一个配合设备调试的上位机程序. 除了MFC界面的部分,就是要处理几条命令. 串口通信部分代码借鉴的是这一篇文章:http://blog.sina.com.cn/s/blog_a ...

  5. ASP.NET WebForm Ajax请求Handler的经验

    ajax代码 $.ajax({ type: "GET", url: "/AjaxHandler/GetPluginCode.ashx", data: " ...

  6. linux查看文件内容跳到文件底部和回到文件顶部的快捷键

    有时候需要查看一些日志文件,然后要从底部开始查看的话 可以按 shift+g  即可跳到文件底部 要返回文件顶部的时候 按 gg即可

  7. 从头学pytorch(六):权重衰减

    深度学习中常常会存在过拟合现象,比如当训练数据过少时,训练得到的模型很可能在训练集上表现非常好,但是在测试集上表现不好. 应对过拟合,可以通过数据增强,增大训练集数量.我们这里先不介绍数据增强,先从模 ...

  8. 【软件】Gimp内容识别填充开启工具1.0

    *源文件起初存于Gimp-Registry,后因服务器维护成本问题,Gimp将原服务器中所有文件迁移至GimpGithub *博主只是将原插件中的内容识别填充功能进行打包处理,方便大家一键启用. 下载 ...

  9. UNITY->(width*height)style Inventory

    项目过后对项目功能进行记录,(width*height)风格背包实现细节,包含对物体的存放,装备,替换,对未知装备的鉴定,物体前缀的获取,项目类型为tcg+rpg,背包的作用主要为游戏中的物品的获取存 ...

  10. 通过脚本实现对web的健康检查

    前面的文章中(https://www.cnblogs.com/zyxnhr/p/10707932.html),通过nginx的第三方模块实现对web端的一个监控,现在通过一个脚本实现对第三方的监控 脚 ...