總結(jié)了九個(gè)絕佳的 Python Debug 工具
調(diào)試(Debug)階段有時(shí)是相當(dāng)具有挑戰(zhàn)性及耗時(shí)的,Python的一些基本功能可以幫助我們快速調(diào)試。除了我們常用的Pycharm,還有哪些不錯(cuò)的工具呢?
下面列出了的Python調(diào)試工具。
- Sentry 是最好的錯(cuò)誤跟蹤和調(diào)試工具之一,使開發(fā)人員能夠快速診斷和修復(fù)python問題。
- Pycharm 一個(gè)基于IDE的調(diào)試工具,用于更快地檢查和修復(fù)Python相關(guān)的問題。由于其支持性、靈活性和出色的功能,它非常受歡迎。
- Pyringe 另一個(gè)Python調(diào)試器工具,可以將不同的Python代碼檢查到實(shí)時(shí)進(jìn)程中,以清楚地了解其當(dāng)前狀態(tài)。
- PDB 一個(gè)用于遠(yuǎn)程服務(wù)器的源代碼調(diào)試工具。它是為不支持基于GUI的調(diào)試器的環(huán)境而設(shè)計(jì)的。
- PyScripter 另一個(gè)Python IDE平臺(tái),提供各種功能來測(cè)試和調(diào)試Python代碼。它允許開發(fā)者在瀏覽器中編寫和運(yùn)行Python代碼。
- Glitchtip 一個(gè)免費(fèi)的錯(cuò)誤跟蹤和調(diào)試工具,在檢測(cè)到任何錯(cuò)誤時(shí)向用戶提供即時(shí)警報(bào)。
- Icecream 一個(gè)免費(fèi)的Python調(diào)試工具,被開發(fā)者用來協(xié)助調(diào)試Python項(xiàng)目。它可以通過pip安裝。
- Pyshield 一個(gè)圖形化的Python調(diào)試工具,允許開發(fā)人員編輯、調(diào)試和發(fā)布加密的Python腳本。
- PySnooper 最好的用戶友好型Python調(diào)試工具之一,用于檢測(cè)和解決復(fù)雜和遺留Python項(xiàng)目中的錯(cuò)誤。
眾所周知,Python是一種使用簡(jiǎn)單語法的頂級(jí)編程語言。因此,開發(fā)者更容易閱讀和理解代碼。此外,Python用于建立桌面GUI應(yīng)用程序,創(chuàng)建網(wǎng)頁,并開發(fā)基于網(wǎng)絡(luò)的應(yīng)用程序。
這里,云朵君將和大家一起交流一些流行的第三方工具,它們將協(xié)助你調(diào)試Python并擴(kuò)展你的調(diào)試能力。如果你是初學(xué)者,建議你關(guān)注和星標(biāo)@公眾號(hào):數(shù)據(jù)STUDIO,這里有不少有用的知識(shí)總結(jié)與實(shí)戰(zhàn)項(xiàng)目~
如何選擇Python Debug工具
大多數(shù)人使用python來運(yùn)行基于網(wǎng)絡(luò)的應(yīng)用程序,其中涉及到編寫成千上萬的代碼。為了避免在代碼中犯任何錯(cuò)誤,開發(fā)人員選擇調(diào)試工具,幫助在啟動(dòng)前運(yùn)行幾個(gè)測(cè)試。在這些測(cè)試的幫助下,開發(fā)人員可以發(fā)現(xiàn)隱藏的錯(cuò)誤,這些錯(cuò)誤會(huì)影響你的性能。
但是,選擇一個(gè)工具時(shí),開發(fā)者必須交叉檢查各種事情??纯此峁┑墓ぞ呤欠裉峁╁e(cuò)誤報(bào)告和警報(bào)功能、性能監(jiān)測(cè)、錯(cuò)誤跟蹤和支持集成,以及它們是否與你的開發(fā)環(huán)境直接匹配。
還必須檢查它們是否是開源的,如果是免費(fèi),是否還是具有包含高級(jí)功能。為了減輕你的選擇困難癥,我們列出了一些考慮到各個(gè)方面的免費(fèi)和高級(jí)Python調(diào)試工具,在你做出選擇之前,可以選擇關(guān)注并比較所列出的列表,因此強(qiáng)烈建議你點(diǎn)贊收藏。
有哪些好的Python Debug工具
作為最流行的編程語言之一,大多數(shù)Python開發(fā)者用來做各種各樣的開發(fā)。因此,為了獲得更好的結(jié)果和順利運(yùn)行,Debug 對(duì)于 Python 項(xiàng)目開發(fā)是至關(guān)重要的。
下面列出了一些頂級(jí)的Python調(diào)試工具以及它們的功能,供大家選擇,最終你會(huì)選擇哪一個(gè)工具呢?
1. Sentry
圖片
Sentry[1]是最好的bug跟蹤和性能監(jiān)控工具之一,受到許多領(lǐng)域?qū)<业男湃闻c支持。在Sentry的幫助下,開發(fā)人員可以快速診斷和修復(fù)python問題。此外,它支持slack跟蹤功能,使客戶更容易發(fā)現(xiàn)代碼中的bug并刺激開發(fā)環(huán)境。
主要特點(diǎn)
- 堆棧追蹤
- 事件日志閱讀器
- 檢測(cè)bug
- 識(shí)別再現(xiàn)bug的領(lǐng)域
因其優(yōu)秀功能,公司可以更快地分解報(bào)告的問題。
它的性能監(jiān)測(cè)能力進(jìn)一步使開發(fā)人員能夠識(shí)別再現(xiàn)bug的區(qū)域,并迅速發(fā)現(xiàn)不尋常的讀數(shù)。
它是免費(fèi)使用的,但有高級(jí)功能。免費(fèi)工具只能問基本功能,僅支持有限的功能。如果你升級(jí)工具并選擇團(tuán)隊(duì)包,可以獲得更多的bug檢測(cè)算法。同樣,商業(yè)套餐包括更多的bug檢查能力。
可以嘗試免費(fèi)試用這兩個(gè)付費(fèi)套餐,用其來Debug看看。
優(yōu)點(diǎn)
- 迅速發(fā)現(xiàn)代碼中的bug并更快地解決問題。
- 能夠更快地發(fā)現(xiàn)不尋常的讀數(shù)。
- 免費(fèi)工具,但支持高級(jí)功能。
- 支持源代碼整合。
缺點(diǎn)
- 分別報(bào)告問題。
- 壓倒性的,但需要時(shí)間來理解。
定價(jià):提供具有基本功能和有限用戶容量的免費(fèi)版本,團(tuán)隊(duì)套餐版本費(fèi)用是26美元/月以及商業(yè)版本是80美元/月。
網(wǎng)站鏈接:https://sentry.io/signup/
2.Pycharm
圖片
Pycharm[2]是一個(gè)具有IDE功能的Python調(diào)試工具,它建立在開源的原則之上,并接受以鍵盤為中心的方法。大多數(shù)開發(fā)者期待著Pycharm,因?yàn)樗闹С?、靈活性和出色的功能,有助于更快地檢查錯(cuò)誤和修復(fù)Python問題。
主要特點(diǎn)
- 集成調(diào)試器和測(cè)試運(yùn)行器
- 支持與主要的VCS、IPython Notebook和幾個(gè)內(nèi)置數(shù)據(jù)庫工具的集成
- 支持JavaScript、TypeScript、Cython、SQL、HTML/CSS、AngularJS、Node.js等。
- 調(diào)試和部署
- 測(cè)試遠(yuǎn)程主機(jī)或虛擬機(jī)
- 網(wǎng)絡(luò)開發(fā)框架
- 自動(dòng)化的智能重構(gòu)
- 運(yùn)行PEP8檢查
該工具支持的IDE功能通過PEP8檢查、自動(dòng)智能重構(gòu)和其他可用的檢查功能保持對(duì)代碼質(zhì)量的控制。該平臺(tái)由程序員設(shè)計(jì),包括各種工具,幫助提高生產(chǎn)力和整體項(xiàng)目開發(fā)。
它適用于所有現(xiàn)代Web開發(fā)框架,包括Pyramid、web2py、Django、Flask、Google App Engine等,并支持與IPython Notebook集成。
此外,它還有免費(fèi)的社區(qū)版和付費(fèi)的專業(yè)版。Pycharm的高級(jí)版本支持JavaScript、HTML/CSS和SQL。因此,在Pycharm的幫助下,你可以執(zhí)行廣泛的任務(wù)。
優(yōu)點(diǎn)
- 提供語法和bug維護(hù)。
- PyCharm很容易安裝,并支持多種插件。
- 允許導(dǎo)入援助和丟失的庫。
- 支持一個(gè)巨大的社區(qū),供用戶查詢。
缺點(diǎn)
- 與其他文本編輯器相比,更占用空間。
- 社區(qū)只支持python開發(fā)人員,不支持其他編程語言。
- 專業(yè)套餐很貴。
定價(jià):Pycharm社區(qū)版是開源的,完全免費(fèi),而PyCharm專業(yè)版有額外的功能,價(jià)格為 199美元/年,以及全產(chǎn)品包為649美元/年。
網(wǎng)站鏈接:https://www.jetbrains.com/pycharm/
3.Pyringe
圖片
Pyringe[3]是另一個(gè)Python調(diào)試器,它幫助將不同的Python代碼注入到實(shí)時(shí)進(jìn)程中,以清楚地了解其當(dāng)前狀態(tài)。在Pyringe的高級(jí)功能的幫助下,可以更快地調(diào)試bug。
主要特點(diǎn)
- 在現(xiàn)場(chǎng)會(huì)議期間檢查代碼
- 快速調(diào)試bug
- 在7.4以上的版本中工作效果最好
- 有關(guān)問題的實(shí)時(shí)更新
- 列表中的線程和回溯
- 檢查運(yùn)行中的函數(shù)的局部或全局
此外,程序不需要停止即可檢查Pyringe的數(shù)據(jù)。實(shí)時(shí)檢查所有的代碼并修復(fù)所拋出的bug。它是一個(gè)免費(fèi)的工具,可以檢查正在運(yùn)行的函數(shù)中的locals或globals變量。
它還支持模擬GW數(shù)據(jù)的環(huán)比分析和廣義相對(duì)論的參數(shù)化測(cè)試。如果你正在尋找一個(gè)調(diào)試工具,即使在實(shí)時(shí)會(huì)話中也能幫助檢查代碼,那就不要再找了。
優(yōu)點(diǎn)
- 可以在運(yùn)行過程中對(duì)代碼進(jìn)行調(diào)試
- 更快地檢測(cè)Python代碼中的bug
- 檢查運(yùn)行中的函數(shù)的局部或全局
- 實(shí)時(shí)代碼檢查
缺點(diǎn)
- 你必須有一個(gè)配置為"-with-python" 的gdb
定價(jià):它是一個(gè)完全免費(fèi)的軟件工具。
網(wǎng)站鏈接:https://github.com/google/pyringe
4.PDB
圖片
PDB[4]是Python標(biāo)準(zhǔn)庫的一部分,支持面向行的命令解釋器和基本調(diào)試器功能模塊。它最適合于不支持基于GUI的調(diào)試器的環(huán)境。
主要特點(diǎn)
- 允許檢查堆??蚣芎驮创a列表
- 更快地發(fā)現(xiàn)和修復(fù)bug
- 支持修改Pdb類
- 管理員有權(quán)限在任何時(shí)候停止程序進(jìn)行調(diào)試
- 事后調(diào)試
- 運(yùn)行一個(gè)沒有參數(shù)的審計(jì)事件
- 支持插入多個(gè)命令
簡(jiǎn)單地說,PBD是遠(yuǎn)程服務(wù)器的交互式源代碼調(diào)試工具之一。只需要插入pdb、pdb.set_trace()命令即可開始調(diào)試。所有的腳本正常運(yùn)行,只在你插入斷點(diǎn)的地方停止。
此外,它還支持查看堆棧痕跡、源代碼列表,以及除插入斷點(diǎn)之外的代碼步進(jìn)。
優(yōu)點(diǎn)
- 非常適合小型項(xiàng)目,因?yàn)樗拈_銷較少。
- 可以在任何時(shí)候停止程序以進(jìn)行調(diào)試。
- 開發(fā)人員可以使用PDB插入多個(gè)命令。
缺點(diǎn)
- PDB只用CLI的方法是相當(dāng)令人沮喪的
- 在收到命令時(shí),該工具會(huì)評(píng)估單個(gè)變量和表達(dá)式,不支持編輯。
定價(jià):它是一個(gè)完全免費(fèi)的軟件工具。
網(wǎng)站鏈接:https://github.com/python/cpython/tree/3.10/Lib/pdb.py
5.PyScripter
圖片
PyScripter[5]是另一個(gè)基于Unicode的開源Python集成開發(fā)環(huán)境平臺(tái),提供調(diào)試和開發(fā)。它功能豐富,并支持Python源文件的輕量級(jí)工具之一,開發(fā)者可以在瀏覽器中編寫和運(yùn)行Python代碼。
主要特點(diǎn)
- 開源的IDE解決方案
- 免費(fèi)并支持持久的可配置選項(xiàng)
- PyScripter是基于Unicode的
- 支持內(nèi)置的參數(shù)化代碼模板
- 支持與PyLint等工具的集成
- 它有助于更快地檢測(cè)和更換代碼
- 突出顯示不同格式的文件的語法
它還用于突出不同格式文件的語法,包括HTML、XML和CSS。
PyScripter是許多公司的選擇,因?yàn)樗情_源的,易于配置,并支持內(nèi)置的參數(shù)化代碼模板。你還可以與其他工具集成,如PyLint。
檢測(cè)bug非常迅速,它有助于快速查找和替換代碼。PyScripter是免費(fèi)的,支持可配置的IDE選項(xiàng)。
優(yōu)點(diǎn)
- PyScripter是一個(gè)開源的調(diào)試器,易于配置。
- 支持不同的格式,如HTML、XML和CSS的語法文件。
- 免費(fèi)且能快速檢測(cè)Python開發(fā)項(xiàng)目中的 bug。
缺點(diǎn)
- 支持有限的平臺(tái),如Windows。
- 自第四版推出以來,它一直不穩(wěn)定。
- 通過PyScripter對(duì)代碼進(jìn)行重構(gòu)并不容易。
定價(jià):它是一個(gè)免費(fèi)的軟件工具。
網(wǎng)站鏈接:https://github.com/pyscripter/pyscripter
6.Glitchtip
圖片
Glitchtip[6]是一個(gè)開源的 bug 跟蹤工具,它實(shí)時(shí)收集bug并將報(bào)告整理成可修復(fù)的格式。與其他平替工具相比,它更好,因?yàn)樗情_源的,其用戶社區(qū)也一直很活躍。
主要特點(diǎn)
- 支持sentry整合
- 支持托管或自我托管的功能
- 免費(fèi)的開源工具,提供性能監(jiān)控
- 支持報(bào)告bug和匯總
- 支持大型活躍的用戶社區(qū)
此外,它是一個(gè)簡(jiǎn)單的監(jiān)控軟件,在檢測(cè)到任何bug時(shí)向用戶提供即時(shí)警報(bào)。它是一個(gè)多合一的bug跟蹤解決方案,與Sentry客戶端SDK兼容。
此外,它是一個(gè)免費(fèi)工具,支持托管或自我托管選項(xiàng)。該工具提供的高級(jí)套餐有各種選項(xiàng),如涵蓋10萬個(gè)事件的小型套餐,涵蓋多達(dá)50萬個(gè)事件的中型套餐,以及支持約300萬個(gè)事件的大型套餐。如果你是一個(gè)小公司或項(xiàng)目預(yù)算相對(duì)較低,建議嘗試使用 Glitchtip,它支持各種規(guī)模的企業(yè)。
優(yōu)點(diǎn)
- Glitchtip可以輕易進(jìn)行軟件監(jiān)控。
- Glitchtip是一個(gè)開源的bug跟蹤平臺(tái)。
- 支持一個(gè)龐大的用戶社區(qū)。
- 是低預(yù)算公司的理想選擇,支持托管或自我托管選項(xiàng)。
缺點(diǎn)
- 對(duì)于少數(shù)企業(yè)來說,高級(jí)套餐可能很昂貴。
定價(jià):它在自我托管時(shí)提供一個(gè)免費(fèi)版本。它還為小型、中型和大型企業(yè)提供一個(gè)商業(yè)包。小型包支持多達(dá)10萬個(gè)事件,費(fèi)用為每月15美元,中型包支持多達(dá)50萬個(gè)事件,費(fèi)用為每月50美元。最后,大型包支持多達(dá)300萬個(gè)事件,費(fèi)用為每月250美元。
網(wǎng)站鏈接:https://glitchtip.com/
7.Icecream
圖片
Print()函數(shù)經(jīng)常被用來協(xié)助調(diào)試Python項(xiàng)目,但我們一直在尋找它的平替,而Icecream[7]是print()函數(shù)的最佳替代方案之一,因?yàn)榕c原始輸出函數(shù)(print()函數(shù))相比,它提供了更詳細(xì)的信息。建議查看(點(diǎn)擊)不再使用 print 來Debug了, IceCream 來了!
主要特點(diǎn)
- print()函數(shù)的最佳替代方案。
- 提供比print()函數(shù)更詳細(xì)的信息。
- 對(duì)變量進(jìn)行詳細(xì)檢查。
- pip安裝非常方便。
- bug檢測(cè)。
- 對(duì)Python代碼進(jìn)行Debug并監(jiān)控性能。
它是一個(gè)免費(fèi)的、開源的Python調(diào)試工具,也用于變量的詳細(xì)檢查。安裝也很容易,Icecream 調(diào)試器可以通過 pip 安裝。
優(yōu)點(diǎn)
- print()函數(shù)的最佳替代方案。
- 支持pip包的安裝。
- 需要更少的時(shí)間來安裝Icecream調(diào)試器。
缺點(diǎn)
- 在Icecream調(diào)試器工具中還沒有發(fā)現(xiàn)缺點(diǎn)。
定價(jià):它是一個(gè)免費(fèi)的工具。
網(wǎng)站鏈接:https://github.com/gruns/icecream
8.Pyshield
圖片
Pyshield[8]是一個(gè)支持Python的IDE工具,幫助開發(fā)者編輯、調(diào)試和發(fā)布加密的Python腳本。此外,它還被用來構(gòu)建獨(dú)立的可執(zhí)行文件。
主要特點(diǎn)
- Pyshield有一個(gè)GUI調(diào)試器
- 部署Python腳本
- 運(yùn)行加密的Python腳本
- 允許在跨平臺(tái)發(fā)布Python腳本
- 支持模擬Emacs python-mode的編輯器
- 代碼樹瀏覽器
- 突出語法以減少bug
- 代碼塊折疊支持
- 在多個(gè)文件和目錄中搜索引用
- Pyshield與Windows XP、Windows 7和Ubuntu i686兼容。
你可以在Windows XP、Windows 7和Ubuntu i686上運(yùn)行該工具。它允許在跨平臺(tái)上發(fā)布和運(yùn)行加密的python腳本。此外,為了減少出錯(cuò)的幾率,它允許開發(fā)者突出顯示語法。
它包括一個(gè)模擬Emacs python模式的編輯器。此外,它還支持各種功能,如代碼塊折疊、代碼樹瀏覽器等,使其成為調(diào)試Python的良好選擇。
優(yōu)點(diǎn)
- 允許管理員編輯、修改、調(diào)試和發(fā)布Python腳本。
- 運(yùn)行加密的python腳本。
- 強(qiáng)調(diào)減少錯(cuò)誤的語法。
- 支持代碼塊折疊。
缺點(diǎn)
- Pyshield支持有限的平臺(tái)。
定價(jià):軟件供應(yīng)商[9]定價(jià)細(xì)節(jié)。
網(wǎng)站鏈接:https://pyshield.updatestar.com/en/edit
9.PySnooper
圖片
PySnooper[10]也是大多數(shù)開發(fā)者的首選,因?yàn)樗?jiǎn)化了調(diào)試工作。這個(gè) bug 跟蹤工具會(huì)在被檢查的源代碼行和函數(shù)上自動(dòng)生成日志。因此,你可以使用這個(gè)工具查看局部變量的值。
主要特點(diǎn)
- 支持多線程應(yīng)用
- 顯示已執(zhí)行的行
- 可定制的對(duì)象
- 免費(fèi)的錯(cuò)bug跟蹤工具
- 自動(dòng)生成日志
- 在復(fù)雜和遺留的Python項(xiàng)目中進(jìn)行調(diào)試
- 將數(shù)值截?cái)嘀寥魏螖?shù)字
- 允許消除所有與機(jī)器有關(guān)的數(shù)據(jù),以便更好地進(jìn)行比較
此外,它很容易檢測(cè)和解決復(fù)雜和遺留的Python項(xiàng)目中的bug,也不必做任何額外的設(shè)置,只需要在任何函數(shù)的任何一行之前添加 "pysnooper.snoop()",它就會(huì)開始跟蹤所有函數(shù)的性能。
你也可以通過這個(gè)調(diào)試器將輸出重定向到一個(gè)特定的文件。
優(yōu)點(diǎn)
- 不需要額外的設(shè)置。
- 支持前綴。
- 自動(dòng)生成檢查過的代碼行的日志。
缺點(diǎn)
- PySnooper中還沒有發(fā)現(xiàn)缺點(diǎn)。
定價(jià):它是免費(fèi)的,可在GitHub上使用。
網(wǎng)站鏈接:https://github.com/cool-RR/PySnooper
總結(jié)
隨著人工智能的大熱,Python成為大多數(shù)開發(fā)者的首選預(yù)語言,因?yàn)樗哂懈叨鹊目勺x性,并支持簡(jiǎn)單的語法。它是頂級(jí)編程語言之一,主要用于運(yùn)行一個(gè)組織的運(yùn)作,建立桌面GUI應(yīng)用程序,以及創(chuàng)建和開發(fā)基于網(wǎng)絡(luò)的應(yīng)用程序。
因此,為了確保每個(gè)操作和設(shè)計(jì)在將來都能正常工作,開發(fā)者必須在產(chǎn)品發(fā)布之前不斷地進(jìn)行測(cè)試。如果你沒有選對(duì)合適的工具,Python Debug 過程可能相當(dāng)難受。
本文列出了幾個(gè)不同的Python調(diào)試工具,它們幫助我們發(fā)現(xiàn)bug并解決它們。上entry、Pycharm、Pyringe、PDB、PyScripter、Glitchtip、Icecream、Pyshield和PySnooper是市場(chǎng)上一些流行的Python調(diào)試器,每一個(gè)工具都有不同的功能和特點(diǎn)。
而大多數(shù)這些工具都是開源的,可以免費(fèi)使用。其中一些工具可以測(cè)試每一行源代碼,并在報(bào)告中顯示最耗時(shí)的代碼片段。按照上面列出的工具及其功能來 debug Python,每一個(gè)工具都有自己的作用和特點(diǎn),你可以按需比較并選擇適合你的要求和預(yù)算的工具,以便提高你的編程效率。
你會(huì)選擇哪個(gè)工具呢?歡迎評(píng)論區(qū)討論~
參考資料
[1]Sentry: https://sentry.io/welcome/
[2]Pycharm: https://www.jetbrains.com/pycharm/
[3]Pyringe: https://github.com/google/pyringe
[4]PDB: https://github.com/pdbpp/pdbpp
[5]PyScripter: https://github.com/pyscripter/pyscripter
[6]Glitchtip: https://glitchtip.com/
[7]Icecream: https://github.com/gruns/icecream
[8]Pyshield: http://www.en.umbrella-soft.com/apps/pyshield-1.6.2
[9]軟件供應(yīng)商: https://pyshield.updatestar.com/en/licenses
[10]PySnooper: https://github.com/cool-RR/PySnoope