自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python調(diào)試有助于編程環(huán)境的完善

開發(fā) 后端
Python調(diào)試需要我們十分認(rèn)真的進(jìn)行。因?yàn)檫@是在組建之后最后的一道工序,能否順利的完成還是需要我們進(jìn)行相關(guān)的調(diào)試。

Python調(diào)試在很多的時(shí)候都需要我們?nèi)プ觯?dāng)然在使用的過程中會(huì)出現(xiàn)各種的狀況。下面我們就來詳細(xì)的看下如何進(jìn)行有關(guān)Python的環(huán)境調(diào)試。希望大家有所收獲。

據(jù)聞winpdb、Wing IDE的調(diào)試器能夠支持這樣的遠(yuǎn)程調(diào)試,但似乎過于重量級(jí)(好吧前者比后者要輕多了,但一樣要wx Python調(diào)試的環(huán)境,再說pdb的靈活可靠它們難以比擬)。

其實(shí)只需稍作改動(dòng)即可用pdb繼續(xù)Python調(diào)試子進(jìn)程的代碼,思路來自這個(gè)博客:子進(jìn)程的stdin/out/err關(guān)閉了,那可以自己重新按/dev/stdout的名稱打開來用。當(dāng)然這指*nix下,win下要麻煩一些,后面再說。

pdb支持自定義輸出輸入的文件,我再稍作改動(dòng),使用fifo管道(Named Pipe)來完成pdb的輸出輸入的重定向,這樣的好處是,可以同時(shí)對(duì)父子進(jìn)程調(diào)試!

 

  1. multiproces_debug.py  
  2. #!/usr/bin/python  
  3. import multiprocessing  
  4. import pdb  
  5. def child_process():  
  6. print "Child-Process"  
  7. pdb.Pdb(stdin=open('p_in', 'r+'), stdout=open('p_out', 
    'w+')).set_trace()  
  8. var = "debug me!" 
  9. def main_process():  
  10. print "Parent-Process"  
  11. p = multiprocessing.Process(target = child_process)  
  12. p.start()  
  13. pdb.set_trace()  
  14. var = "debug me!" 
  15. p.join()  
  16. if __name__ == "__main__":  
  17. main_process()  

 

只需要給pdb的構(gòu)造參數(shù)傳入stdin/stdout的文件對(duì)象,調(diào)試過程的輸出輸入就自然以傳入的文件為方向了。這里需要兩個(gè)管道文件p_in、p_out,運(yùn)行腳本之前,使用命令mkfifo p_in p_out同時(shí)建立。這還未完成,還需要個(gè)外部程序來跟管道交互:

  1. #!/bin/bash  
  2. cat p_out &  
  3. while [[ 1 ]]; do  
  4. read -e cmd  
  5. echo $cmd>p_in  
  6. done  

很簡(jiǎn)單的bash。因?yàn)閒ifo管道在寫入端未傳入數(shù)據(jù)時(shí),讀取端是阻塞的(反之亦然),所以cat的顯示掛在后臺(tái),當(dāng)調(diào)試的程序結(jié)束后,管道傳出EOF,cat就自動(dòng)退出了。

實(shí)驗(yàn)開始:先在一個(gè)終端運(yùn)行debug_cmd.sh(其實(shí)順序無關(guān)),其光標(biāo)停在新的一行,再在另外一個(gè)終端運(yùn)行multiproces_debug.py,可見到兩個(gè)終端同時(shí)出現(xiàn)了(Pdb)的指示符,可以同時(shí)對(duì)父子進(jìn)程調(diào)試了!以上就是對(duì)Python調(diào)試的相關(guān)介紹。

【編輯推薦】

  1. Python循環(huán)如何解決無限循環(huán)
  2. Python編程不同于其他編程語言的優(yōu)點(diǎn)
  3. Python安裝配置的基本步驟詳解
  4. Python圖像處理的好處所在
  5. Python函數(shù)式和Ruby的相關(guān)技術(shù)比較
責(zé)任編輯:張浩 來源: IT168
相關(guān)推薦

2024-04-11 11:36:26

數(shù)據(jù)中心公共云計(jì)算IT企業(yè)

2022-10-08 08:38:32

物聯(lián)網(wǎng)

2019-11-19 12:40:36

AI人工智能開源工具

2021-11-26 05:14:44

開源數(shù)據(jù)庫(kù)安全漏洞

2011-03-22 13:36:21

數(shù)據(jù)創(chuàng)建安全環(huán)境

2021-06-10 09:34:24

前端開發(fā)工具開發(fā)

2020-03-25 20:19:43

人工智能技術(shù)智能機(jī)器

2011-12-09 09:31:58

桌面虛擬化

2019-11-18 11:07:13

人工智能技術(shù)Apache

2021-08-13 10:33:55

IT經(jīng)理首席信息官CIO

2013-07-17 09:19:23

2020-02-05 13:03:55

數(shù)據(jù)中心混合云技術(shù)

2020-03-23 09:31:51

JavaScript函數(shù)技術(shù)

2017-04-14 10:40:43

SDS系統(tǒng)選擇

2023-06-09 19:03:35

開源組織

2019-08-12 07:39:25

數(shù)據(jù)中心IT開銷

2022-09-21 14:12:33

大數(shù)據(jù)醫(yī)療保健

2014-04-15 10:07:22

大數(shù)據(jù)

2017-09-06 15:53:55

機(jī)器學(xué)習(xí)人工智能框架

2018-10-25 14:14:52

云計(jì)算機(jī)器學(xué)習(xí)數(shù)據(jù)分析
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)