2019最新Python學習教程升級版(Linux 下如何除錯 Python?)

千鋒Python唐小強發表於2019-07-30

一般開發者都是在 IDE 中進行程式的除錯,當然,有 IDE 的話,當然首選 IDE 進行除錯。

但是,有時我們的業務場景,限制只能在 Linux 命令列模式進行除錯。

這時該怎麼辦呢?

今天的 Python學習教程 ,就給大家介紹一個 Linux 下除錯 Python 程式的工具。

pdb簡介

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

複製程式碼

這時,就開始單步執行了。

2019最新Python學習教程升級版(Linux 下如何除錯 Python?)

這種方法對程式碼沒有侵入性,但是每次都需要設定斷點。

使用方法 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===")

複製程式碼

此時,執行程式,就會自動跳轉到設定的斷點處:

2019最新Python學習教程升級版(Linux 下如何除錯 Python?)

本期Python學習教程總結

沒了圖形化頁面,除錯只能這麼來了,不過還好,pdb 使用看著不難吧。

其實還有一些增強的偵錯程式,比如 IPython 的 ipdb 和 pdb++,它們一般都提供了更好的使用者體驗,新增了有用的額外功能,例如語法突出高亮、更好的回溯和自省。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2652253/,如需轉載,請註明出處,否則將追究法律責任。

相關文章