debugpython
『壹』 如何調試python lib中的代碼
pdb 是 Python 自帶的一個包,為 python 程序提供了一種交互的源代碼調試功能,主要特性包括設置斷點、單步調試、進入函數調試、查看當前代碼、查看棧片段、動態改變變數的值等。
『貳』 如何調試python死循環
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import time
import thread
<a href="https://www..com/s?wd=LOCK&tn=44039180_cpr&fenlei=-N1IA-EUBtkn101P1RLrjc3P1RsPjc3rjb4" target="_blank"class="-highlight">LOCK</a> = True
def timer(no, interval):
while <a href="https://www..com/s?wd=LOCK&tn=44039180_cpr&fenlei=-N1IA-EUBtkn101P1RLrjc3P1RsPjc3rjb4" target="_blank" class="-highlight">LOCK</a>:
print 'y'
def test():
thread.start_new_thread(timer, (1, 1))
time.sleep(5)
global <a href="https://www..com/s?wd=LOCK&tn=44039180_cpr&fenlei=-N1IA-EUBtkn101P1RLrjc3P1RsPjc3rjb4" target="_blank" class="-highlight">LOCK</a>
LOCK = False
time.sleep(5)
if __name__ == '__main__':
test()
可以使用全局變數的,因為線程是共用上下文變數的。
如果解決了您的問題請採納!
如果未解決請繼續追問
『叄』 如何遠程調試Python代碼
用 pdb 進行調試 pdb 是 python 自帶的一個包,為 python 程序提供了一種交互的源代碼調試功能,
『肆』 調試python,我找不到哪裡出錯了
第7行,[ 打錯了,你打的全形[
s=s+'x['+a[i]+']'
『伍』 調試python代碼的方法有哪些
本文討論在沒有方便的IDE工具可用的情況下,使用pdb調試python程序
源碼例子
例如,有模擬稅收計算的程序:
#!/usr/bin/python
def debug_demo(val):
if val <= 1600 :
print "level 1"
print 0
elif val <= 3500 :
print "level 2"
print (val - 1600) * 0.05
elif val <= 6500 :
print "level 3"
print (val - 3500) * 0.10 + (3500-1600) * 0.05
else:
print "level 4"
print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
#~def debug_demo
if __name__ == "__main__":
debug_demo(4500)
debug_demo函數計算4500的入賬所需的稅收。
如何調試?
1.加入斷點
在需要插入斷點的地方,加入紅色部分代碼:如果_DEBUG值為True,則在該處開始調試(加入_DEBUG的原因是為了方便打開/關閉調試)。
#!/usr/bin/python
_DEBUG=True
def debug_demo(val):
if _DEBUG == True:
import pdb
pdb.set_trace()
if val <= 1600 :
print "level 1"
print 0
elif val <= 3500 :
print "level 2"
print (val - 1600) * 0.05
elif val <= 6500 :
print "level 3"
print (val - 3500) * 0.10 + (3500-1600) * 0.05
else:
print "level 4"
print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
#~def debug_demo
if __name__ == "__main__":
debug_demo(4500)
2.開始運行調試
運行程序./debug_demo.py,得到
> /usr/local/qspace/user_network/debug_demo.py(7)debug_demo()
-> if val <= 1600 :
(Pdb)
-> val <= 1600 : 指示當前執行的語句,(Pdb)等待你的調試指令. pdb的指令很豐富,輸入h指令可以查看指令的使用方法。下面簡單介紹常用指令:
查看代碼上下文,l(小寫L)
(Pdb) l
2 _DEBUG=True
3 def debug_demo(val):
4 if _DEBUG == True:
5 import pdb
6 pdb.set_trace()
7 -> if val <= 1600 :
8 print "level 1"
9 print 0
10 elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
(Pdb)
左邊是行號,右邊是代碼正文。
監視變數:p 變數名
(Pdb) p val
4500
(Pdb)
單步執行: n
-> elif val <= 3500 :
(Pdb) l
5 import pdb
6 pdb.set_trace()
7 if val <= 1600 :
8 print "level 1"
9 print 0
10 -> elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
13 elif val <= 6500 :
14 print "level 3"
15 print (val - 3500) * 0.10 + (3500-1600) * 0.05
加入斷點:b 行號
(Pdb) b 14
運行到斷點: c
(Pdb) c
> /*****
-> print "level 3"
(Pdb) l
9 print 0
10 elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
13 elif val <= 6500 :
14 B-> print "level 3"
15 print (val - 3500) * 0.10 + (3500-1600) * 0.05
16 else:
17 print "level 4"
18 print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
19
執行到函數返回前: r
(Pdb) r
level 3
195.0
--Return--
> /****()
->None
-> print (val - 3500) * 0.10 + (3500-1600) * 0.05
(Pdb)
說明:
pdb還有很多其他很多有用的指令,讀者可以自行探索。輸入h,h 命令。就可以得到命令的詳細幫助。
不過,我個人認為一般無需啟動這種調試方法,一般使用日誌輸出進行調試即可,除非遇到了非常微妙的錯誤。這時,單步調試的威力便顯示出來了
『陸』 如何調試python腳本,使用python自帶工具
1, 首先下載並安裝Python 2.7
2, 寫一個簡單地Python源文件,比如test.py,內容如下:
import sys, os
def test(arg1, arg2):
print "begin test..."
fun1('1', '2')
print arg1
print arg2
def fun1(arg1, arg2):
print arg1
print arg2
if __name__ == '__main__':
test(*sys.argv[1:])
3, 右鍵test.py->Edit with IDLE進入IDLE界面,Run->Run Mole打開Python Shell窗口,點擊Debug->Debugger,就打開Debug Control界面,你也將會在Python Shell窗口看到如下顯示信息:
[DEBUG ON]
4, 開始調試
4.1,在Python Shell輸入如下測試行:
>>> test('3', '4')
4.2,在 fun1('1', '2')或者任意你想要查看的地方設置斷點(在IDLE界面里右鍵->set breakpoint).
4.3,回到Python Shell界面按回車,你將看到在debug control窗口裡顯示test.py的第一行。
4.4,按Go按鈕,將定位到test.py你剛才設置斷點的地方.
4.5,按Step或者Over進行調試(Step與Over的區別在於:Step將進入到函數內部進行調試,Over是指不進入到函數內部進行調試,而是直接執行完這個函數).
4.6,你將看到在Python Shell窗口裡分步看到列印的內容如下:
[DEBUG ON]
>>> test('3', '4')
begin test...
1
2
3
4
[DEBUG ON]
>>>
『柒』 python debug怎麼用
DEBU是調試版本,可以說是系統還在開發中Release是發布版本,說明系統可以給用戶使用了 主要區別是在於運行時產生的信息不同,以及運行的性能不同
『捌』 如何進行Python 調試器調試
本文首先介紹一下
Python 調試器
的歷史,總結了Python的強大之處和不足並且指出了與其他腳本語言,相比,以及Python語言與其他語言的優勢所在,下面進行學習介紹說明。
PyDev 就能顯示出一個超鏈接,這樣您可以在導入庫或函數的源代碼之間導航。請注意,為了在您自己的源代碼中跨模塊使用該特性(從一個模塊鏈接到另一個模塊),必須修改PYTHONPATH 環境變數。
在其中加入這些模塊,這樣 PyDev 就可以找到它們了。
Python 調試器
是最近才加入 PyDev 插件中的。要使用調試器,可在Python編輯器中想中斷的代碼行的左側點擊,設置斷點。
我在 feedparser.py 的 1830 行處設置了斷點。然後在 Navigator 視圖中選擇這個Python模塊,點擊右鍵,選擇「PythonDebug...」。這時將顯示與前面相似的一個啟動配置窗口。點擊 Debug 進入 Debug 視角,同時啟動調試器。 左上角的 Debug 視圖顯示當前正在執行的進程和線程,右上角的 Variables 視圖顯示當前運行域中的所有變數。
Python編輯器會顯示調試器目前停在哪條語句上,同時所有的輸出信息都顯示與 Console 視圖中。調試器可以通過 Debug 視圖底部的按鈕或 Run 菜單進行控制。 要運行剛剛在 Eclipse 中創建的啟動器,可選擇 Run External ToolspythonInterpreter。
Python解釋器的輸出顯示在 Console 視圖中。
『玖』 怎麼調試python腳本
打開pycharm community 2019.1軟體,創建一個項目。
創建一個py後綴的文件作為示範,文件名自己定義。
相關推薦:《Python基礎教程》
編寫代碼,然後右鍵點擊進行運行,查看一下是否有問題。
點擊右上角的蟲子圖標,然後下面會有控制面板出來,點擊Debugger,然後我們在行號那裡選擇要調試哪一行,點擊就會有紅點。
再點擊蟲子圖標,這個時候就可以開始調試了,點擊step over或者快捷鍵f8就可以調試了。
但是我們可以看出就直接跳過函數內部,對於函數內部的調試,我們則需要點擊step into,或者快捷鍵f7,這樣才可以調試內部。
『拾』 linux怎麼調試python
#!/usr/bin/python
from ftplib import FTP
import sys
import socket
import pdb
def passwordCorrect(ip,port,username,password):
try:
client = FTP()
pdb.set_trace()
client.connect(ip,port)
client.login(username,password)
client.close()
except Exception, e:
pdb.set_trace()
client.close()
if str(e).find('unknown IP address')!=-1:
return 2
return 0
print "correct"
return 1