python調(diào)試工具Birdseye的使用教程
Birdseye是一個(gè)Python調(diào)試器,它在函數(shù)調(diào)用中記錄表達(dá)式的值,并讓你在函數(shù)退出后輕松查看它們,例如:
無(wú)論你如何運(yùn)行或編輯代碼,都可以使用Birdseye。只需要你安裝好依賴(lài):
pip install birdseye
并在代碼函數(shù)上方添加 @eye 裝飾器(如上動(dòng)圖所示),即可根據(jù)需要運(yùn)行函數(shù),并在瀏覽器中查看結(jié)果。
它還可以與一些常用工具集成在一起,如 Pycharm 和 Vscode,以提供更流暢的體驗(yàn),后續(xù)我們會(huì)介紹如何將其與這些工具結(jié)合使用。
它不僅僅能夠單步執(zhí)行,還能在循環(huán)迭代中來(lái)回移動(dòng),并查看所選表達(dá)式的值如何變化:
通過(guò) birdseye 你能很容易地知道哪些表達(dá)式引發(fā)了異常:
你也能夠展開(kāi)具體的數(shù)據(jù)結(jié)構(gòu)和對(duì)象以查看其內(nèi)容:
調(diào)用會(huì)按功能組織(文件組織)并進(jìn)行時(shí)間排序進(jìn)行顯示,讓你一目了然地看到發(fā)生了什么:
1.快速上手
首先,使用 pip 安裝 birdseye :
pip install birdseye
然后,對(duì)需要進(jìn)行調(diào)試的函數(shù)使用eye裝飾器:
from birdseye import eye @eye def foo():
在你調(diào)用該函數(shù)完成后,在終端運(yùn)行命令打開(kāi)Birdseye的Web服務(wù):
python -m birdseye
在瀏覽器打開(kāi) http://localhost:7777 就能看到需要調(diào)試的函數(shù)執(zhí)行流程了。點(diǎn)擊下圖的按鈕即可跳轉(zhuǎn)到最新的函數(shù)調(diào)用。
2.在Pycharm中集成調(diào)試
在 Pycharm 的 Settings 中,點(diǎn)擊 Plugins 插件市場(chǎng)搜索 birdseye 點(diǎn)擊 install 安裝。
安裝完成后重啟Pycharm,就可以在 Pycharm 中使用 birdseye了:
默認(rèn)情況下,該插件還可以為你自動(dòng)運(yùn)行Birdseye服務(wù)器,因此就不需要輸入 python -m birdseye 那行命令了。
3.在VSCode中集成調(diào)試
在VSCode中繼承調(diào)試Birdseye也非常方便,點(diǎn)擊左側(cè)的擴(kuò)展商店,在彈出框中輸入搜索 birdseye,并點(diǎn)擊 install 安裝:
安裝完成后,點(diǎn)擊 F1 輸入Birdseye,就能顯示調(diào)試界面:
如果無(wú)法正常顯示右側(cè)調(diào)試界面,并提示未安裝birdseye,但實(shí)際上你已經(jīng)安裝成功了,這一般是路徑錯(cuò)誤導(dǎo)致的,請(qǐng)?jiān)跀U(kuò)展設(shè)置中手動(dòng)更改python路徑為你安裝了Birdseye的Python。
4.美中不足
Birdseye 是一個(gè)非常強(qiáng)大的調(diào)試工具,但我認(rèn)為這還是有缺點(diǎn)可以改善的:
1.為了防止堆棧過(guò)大,每個(gè)迭代它最多只保留6個(gè)(前三、末三)元素:
因此如果你想看一些特殊元素值的執(zhí)行情況,它可能不會(huì)如你所愿。
不過(guò),不需要擔(dān)心某些分支你調(diào)試不到,因?yàn)?birdseye 有個(gè)保險(xiǎn)機(jī)制:如果一個(gè)表達(dá)式僅在某種特定情況下會(huì)被執(zhí)行,那么執(zhí)行時(shí)的元素也會(huì)被加入到可調(diào)試元素中。
2.由于需要記錄堆棧,程序會(huì)大大減慢速度,因此它絕對(duì)不適合上到生產(chǎn)環(huán)境。
3.每個(gè)函數(shù)調(diào)用,Birdseye 都需要收集許多數(shù)據(jù),對(duì)于某些極其復(fù)雜的函數(shù)調(diào)用,可能會(huì)引發(fā)內(nèi)存問(wèn)題。
如果你不擔(dān)心這三個(gè)缺點(diǎn),而且希望能快速方便地看到函數(shù)中不同分支的執(zhí)行情況,那么Birdseye就是你的不二之選。
以上就是python調(diào)試工具Birdseye的使用教程的詳細(xì)內(nèi)容,更多關(guān)于python調(diào)試工具Birdseye的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)Sqlite將字段當(dāng)做索引進(jìn)行查詢(xún)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)Sqlite將字段當(dāng)做索引進(jìn)行查詢(xún)的方法,涉及Python針對(duì)sqlite數(shù)據(jù)庫(kù)索引操作的相關(guān)技巧,需要的朋友可以參考下2016-07-07python實(shí)現(xiàn)的登錄與提交表單數(shù)據(jù)功能示例
這篇文章主要介紹了python實(shí)現(xiàn)的登錄與提交表單數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了Python表單登錄相關(guān)的請(qǐng)求與響應(yīng)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09詳解pandas繪制矩陣散點(diǎn)圖(scatter_matrix)的方法
這篇文章主要介紹了詳解pandas繪制矩陣散點(diǎn)圖(scatter_matrix)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Django中reverse反轉(zhuǎn)并且傳遞參數(shù)的方法
今天小編就為大家分享一篇Django中reverse反轉(zhuǎn)并且傳遞參數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08windows系統(tǒng)Tensorflow2.x簡(jiǎn)單安裝記錄(圖文)
這篇文章主要介紹了windows系統(tǒng)Tensorflow2.x簡(jiǎn)單安裝記錄(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問(wèn)題(完美解決)
我們一直使用python-memcached庫(kù)來(lái)操作memcached,最近發(fā)現(xiàn)在python3.8的環(huán)境中,代碼會(huì)報(bào)錯(cuò),下面通過(guò)本文給大家講解修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問(wèn)題及解決方法,需要的朋友可以參考下2022-08-08