林和环保网

如何用pdb进行python调试?

林和环保网 0

一、如何用pdb进行python调试?

  本文章讲述了如何用pdb进行python调试讲解.  当手边  没有IDE,面对着python调试犯愁时,你就可以参考下本文;(pdb 命令调试)  和 (pdb)help  用pdb进行python调试,用法基本和gdb差不多,  先看一个简单的例子:  epdb1.py .# epdb1.py -- experiment with the Python debugger, pdb  a = "aaa"  b = "bbb"  c = "ccc"  final = a + b + c  print final  比如要对这个程序进行调试:  1:在文件前面加上这一句,引入调试的模块。  import pdb  2:在要开始调试的一行加上pdb.set_trace()文件变成:  # epdb1.py -- experiment with the Python debugger, pdb  import pdb  a = "aaa"  pdb.set_trace()  b = "bbb"  c = "ccc"  final = a + b + c  print final 可以运行这个程序,到断点出会停下来,和gdb类似,  可以执行命令:  直接回车是重复前一条命令!  p(print) 查看一个变量值  n(next) 下一步  s(step) 单步,可进入函数  c(continue)继续前进  l(list)看源代码  用pdb调试有多种方式可选:  1.命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前  python -m pdb myscript.py  2. 在Python交互环境中启用调试  >>> import pdb  >>> import mymodule  >>> pdb.run('mymodule.test()')  3.比较常用的,就是在程序中间插入一段程序,相对于在一般IDE里面打上断点然后启动debug,不过这种方式是hardcode的 if __name__ == "__main__" :  a = 1  importpdb  pdb .set_trace()  b = 2  c = a + b  print( c)  然后正常运行脚本,到了pdb.set_trace()那就会定下来,就可以看到调试的提示符(Pdb)了  常用的调试命令 h(elp),会打印当前版本Pdb可用的命令,如果要查询某个命令,可以输入 h [command],例如:"h l" - 查看list命令  l(ist),可以列出当前将要运行的代码块  (Pdb) l  497 pdb.set_trace()  498 base_data = {}  499 new_data = {}  500 try:  501 execfile(base_file_name,{},base_data)  502 -> execfile(new_file_name,{},new_data)  503 except:  504 logger.writeLog("error! load result log error!")  505 print "load cmp logs error!"  506 raise Exception, "load cmp logs error!"  507>断点设置  (Pdb)b10 #断点设置在本py的第10行  或(Pdb)bots.py:20 #断点设置到 ots.py第20行  删除断点(Pdb)b #查看断点编号  (Pdb)cl 2 #删除第2个断点  >运行  (Pdb)n #单步运行  (Pdb)s #细点运行 也就是会下到,方法  (Pdb)c #跳到下个断点  >查看  (Pdb)p param #查看当前 变量值  (Pdb)l #查看运行到某处代码  (Pdb)a #查看全部栈内变量 b(reak), 设置断点,例如 "b 77″,就是在当前脚本的77行打上断点,还能输入函数名作为参数,断点就打到具体的函数入口,如果只敲b,会显示现有的全部断点  (Pdb) b 504  Breakpoint 4 at /home/jchen/regression/regressionLogCMP.py:504 condition bpnumber [condition],设置条件断点,下面语句就是对第4个断点加上条件"a==3"  (Pdb) condition 4 a==3  (Pdb) b  Num Type Disp Enb Where  4 breakpoint keep yes at /home/jchen/regression/regressionLogCMP.py:504  stop only if a==3 cl(ear),如果后面带有参数,就是清除指定的断点(我在Python2.4上从来没成功过!!!);如果不带参数就是清除所有的断点  (Pdb) cl  Clear all breaks? y disable/enable,禁用/激活断点  (Pdb) disable 3  (Pdb) b  Num Type Disp Enb Where  3 breakpoint keep no at /home/jchen/regression/regressionLogCMP.py:505 n(ext),让程序运行下一行,如果当前语句有一个函数调用,用n是不会进入被调用的函数体中的  s(tep),跟n相似,但是如果当前有一个函数调用,那么s会进入被调用的函数体中  c(ont(inue)),让程序正常运行,直到遇到断点  j(ump),让程序跳转到指定的行数  (Pdb) j 497  > /home/jchen/regression/regressionLogCMP.py(497)com pareLog()  -> pdb.set_trace() a(rgs),打印当前函数的参数  (Pdb) a  _logger =  _base = ./base/MRM-8137.log  _new = ./new/MRM-8137.log  _caseid = 5550001  _toStepNum = 10  _cmpMap = {'_bcmpbinarylog': 'True', '_bcmpLog': 'True', '_bcmpresp': 'True'} p,最有用的命令之一,打印某个变量  (Pdb) p _new  u'./new/MRM-8137.log' !,感叹号后面跟着语句,可以直接改变某个变量  q(uit),退出调试  ==============================================================================================  在python中使用pdb模块可以进行调试  import pdb  pdb.set_trace()  也可以使用python -m pdb mysqcript.py这样的方式  (Pdb) 会自动停在第一行,等待调试,这时你可以看看 帮助  (Pdb) h  说明下这几个关键 命令  >断点设置  (Pdb)b 10 #断点设置在本py的第10行  或(Pdb)b ots.py:20 #断点设置到 ots.py第20行  删除断点(Pdb)b #查看断点编号  (Pdb)cl 2 #删除第2个断点  >运行  (Pdb)n #单步运行  (Pdb)s #细点运行 也就是会下到,方法  (Pdb)c #跳到下个断点  >查看  (Pdb)p param #查看当前 变量值  (Pdb)l #查看运行到某处代码  (Pdb)a #查看全部栈内变量  (Pdb)w 列出目前call stack 中的所在层。  (Pdb)d 在call stack中往下移一层  (Pdb)u 在call stack中往上移一层。如果在上移一层之后按下 n ,则会在上移之后的一层执行下一个叙述,之前的 function call 就自动返回。  (Pdb)cl 清除指定的断点。如果没有带参数,则清除所有断点。  (Pdb)disable 取消所有断点的功能,但仍然保留这些断点。  (Pdb)enable 恢复断点的功能。  (Pdb)ignore 设定断点的忽略次数。如果没指定 count,其初始 为 0。当 count 为 0 时,断点会正常动作。若有指定 count,则每次执行到该中断, count 就少 1,直到 count 数为 0。  (Pdb)condition bpnumber [condition]  (Pdb)j(ump) lineNo. 跳到某行执行。只有在 call stack 的最底部才能作用。  (Pdb)l 列出目前所在档案中的位置。连续地 l 命令会一直列到档案结尾,可以使用指定行数或范围来打印。  (Pdb)pp 和 p 命令类似,但是使用 pprint module(没用过 pprint,详情请参考 Python Library Reference)。  (Pdb)alias 以一个"别名"代替"一群除错命令",有点类似 c/c 的 macro(详情请参考 Python Library Reference)。  (Pdb)unalias 取消某个 alias。  (Pdb)[!]statement 在目前的环境(context)中执行叙述。  转载

二、可回收物可以进行资源化再利用?

厨余垃圾,可用于降解堆肥处理,同时还能厌氧发酵,产生的沼气用于焚烧发电有害垃圾,工业废物处置中心进行无害化处理其他垃圾,卫生填埋和焚烧发电可回收物,回收后给资源再生企业

三、生物质是什么?可以进行资源化回收处理吗?

生物质是指通过光合作用而形成的各种有机体,包括所有的动植物和微生物。是仅次于煤炭、石油、天然气之后第四大能源,秸秆等农作物都属于生物质,生物质可以经由热解技术处理得到木醋液、木焦油、生物炭等能源产品,热解行业龙头企业济南恒誉环保科技股份有限公司,国家科技进步奖获奖企业,一直做得很不错!

四、资源回收怎么入门?

资源回收入门,可以从了解基本的回收知识开始,包括不同材料的回收标准、可回收垃圾的分类方法、不可回收垃圾的处理方式等。

其次,要建立良好的回收习惯,将可回收垃圾正确分类并定期交付回收公司,避免有害物质污染环境;

此外,要建立个人回收记录,以证明自己的可持续发展行为。

五、怎样进行废品回收?

一、学会一定的废品鉴别学问。

如今,由于信息的兴旺,有多种途径能够学到这些学问的,如网站的材料库或书本等。在实践操作中再把学到的理论学问转化过来,这是事半功倍的方式。这会让新手们少吃点亏。二、学会怎样找废品销路。销路容易,但能卖个好价钱就意味着你能进步本行的竞争力。你可以守在地磅附近,看着运废料的车就拦下来,拿着样品问价钱,这挺有效的,你得到的卖价将越来越高。另外还能够经过网络、黄页等方式找出潜在的销售对象,然后再逐一去访问。你可以在废品之家这个网站看看,有许多叫你如何做废品生意的攻略。

六、江西工厂再生资源回收咨询 | 如何进行有效的再生资源回收?

再生资源回收的重要性

再生资源回收是指对废弃物进行提取、分类、加工和利用,将废弃物再次转化为可再利用的资源,实现资源的循环利用和减少环境污染的目的。

在江西工厂中,再生资源回收既具有经济价值,又对环境产生积极影响。通过有效的再生资源回收,工厂可以降低原材料采购成本,减少废物产生的处理成本,并延长资源的使用寿命。此外,再生资源回收还可以减少环境污染,节约能源,保护生态环境。

江西工厂再生资源回收的挑战

然而,江西工厂在进行再生资源回收时面临一些挑战。首先,资源回收技术的不完善导致了回收效率不高,部分可回收资源未能得到有效利用。其次,对于废弃物的分类和收集工作还存在难度,这要求相关部门和工厂加强沟通合作,制定出科学合理的回收方案。另外,公众对再生资源回收的意识和参与度也需要提高,只有公众积极参与,才能实现再生资源的最大化回收。

如何进行有效的再生资源回收

为了解决江西工厂再生资源回收面临的问题,以下是一些有效的建议:

  • 加强技术研发:江西工厂应该加大对再生资源回收技术的研发和投入,提高回收效率和资源利用率。
  • 完善回收体系:工厂需要与相关部门合作,建立科学的废弃物分类和收集体系,将可回收资源与其他废弃物有效分离。
  • 加强宣传教育:通过广泛宣传,提高公众对再生资源回收的意识和参与度,促使更多人参与到回收活动中。
  • 加强监管力度:相关部门应加强对江西工厂的再生资源回收工作的监管,确保回收环节的规范运行和资源的有效利用。

通过以上措施的实施,江西工厂再生资源回收工作将迎来更大的发展空间。在实现经济效益的同时,有效的再生资源回收将为江西工厂带来可持续发展的新机遇,并为环境保护事业作出积极贡献。

七、再生资源资源回收利用指导意见?

建议把可以再生资源资源回收时也进行分类,把再生资源资源的回收价值进行分类

八、ipad资源机回收吗?

Ipad资源机官网不回收,官方也不会回收,但是我可以告诉你,小地方回收,比如说你在其他的地方,二手市场和一些小黑市啊,这些地方是回收的,他们回去把件儿都拆了,以后匹配重新组装机,这样的话就会嗯麦麦,但是卖不上价格一般的话,卖的比较便宜一些

九、再生资源回收指?

再生资源是指整合有限的资源构造再生资源回收、分拣、转运、加工利用、集中处理为一体的产业化格局。近几年,我国的再生资源回收利用行业得到前所未有的发展。据统计,“十五”期间我国回收利用再生资源总量为4亿多吨,年平均回收利用量在8000万吨,年平均增长率为12%以上,主要再生资源回收利用总值超过了6500亿元,年平均增长率超过了20%。

十、为什么要回收资源?

一、目前再生资源回收是一个时尚行业,它的应用发展跟随着经济发展,带动了社会的需求,应试着资源再生,对于节约资源做出了莫大的贡献。

二、再生资源对环境保护节约资源降低成本有重要的意义.可以减少节约劳动力和资源,也对环境做到了一定的保护和清理作用。能源上的节省金属能来代替一些已绝种或稀少的金属.日益减少有些金属甚至已经绝种了。

三、再生资源的回收,很大程度上节约了成本,一个新的产品和折旧的价格大打折扣,回收后进行加工制作,性质没有改变,功能也同样不会受影响。很多维修店铺就比较青睐这种形式的经营,利益空间还是很大的,对于个人来说,破旧的生活器件能被回收还有一定的价格,已经很不错了。

四、对于社会来说,发展了小市场经济。促进了市场的活跃度,经营模式也越来越受到欢迎。