您好,登錄后才能下訂單哦!
在Linux 下如何調試 Python,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一般開發者都是在 IDE 中進行程序的調試,當然,有 IDE 的話,當然首選 IDE 進行調試。
但是,有時我們的業務場景,限制只能在 Linux 命令行模式進行調試。
這時該怎么辦呢?
大家介紹一個 Linux 下調試 Python 程序的工具。
pdb 調試器是 Python 標準庫提供的,因此最為方便,不需要安裝其他組件,直接 import 后就能使用。
pdb 調試器提供了調試所需的大多數功能,如斷點、單行步進、堆棧幀的檢查等等。
l # 查看運行到哪行代碼
n # 單步運行,跳過函數
s # 單步運行,可進入函數
p 變量 # 查看變量值
b 行號 # 斷點設置到第幾行
b # 顯示所有斷點列表
cl 斷點號 # 刪除某個斷點
cl # 刪除所有斷點
c # 跳到下一個斷點
r # return 當前函數
exit # 退出
復制代碼
本文 Python 環境:Python 3.5.2
我們先準備一小段演示程序:
# -*- coding: utf-8 -*-
def add(a, b):
return a + b
if __name__ == '__main__':
print("===start===")
c = add(1, 3)
print("===end===")
復制代碼
使用方法 1:
運行 pdb 的最簡單方法是從命令行,將程序作為參數傳遞來調試。
$ python -m pdb test_pdb.py
復制代碼
這時,就開始單步執行了。
這種方法對代碼沒有侵入性,但是每次都需要設置斷點。
使用方法 2:
在代碼頭部引入 pdb,然后可以在代碼里,通過 pdb.set_trace() 來設置斷點:
# -*- coding: utf-8 -*-
import pdb
def add(a, b):
pdb.set_trace()
return a + b
if __name__ == '__main__':
print("===start===")
pdb.set_trace()
c = add(1, 3)
print("===end===")
復制代碼
此時,運行程序,就會自動跳轉到設置的斷點處:
沒了圖形化頁面,調試只能這么來了,不過還好,pdb 使用看著不難吧。
其實還有一些增強的調試器,比如 IPython 的 ipdb 和 pdb++,它們一般都提供了更好的用戶體驗,添加了有用的額外功能,例如語法突出高亮、更好的回溯和自省。
看完上述內容,你們掌握在Linux 下如何調試 Python的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。