0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Birdseye:極其強大的Python調(diào)試工具

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-21 10:47 ? 次閱讀

Birdseye是一個Python調(diào)試器,它在函數(shù)調(diào)用中記錄表達式的值,并讓你在函數(shù)** 退出 **后輕松查看它們,例如:

圖片無論你如何運行或編輯代碼,都可以使用Birdseye。只需要你安裝好依賴:

pip install birdseye

并在代碼函數(shù)上方添加 ** @eye ** 裝飾器(如上動圖所示),即可根據(jù)需要運行函數(shù),并在瀏覽器中查看結(jié)果。

它還可以與一些常用工具集成在一起,如 Pycharm 和 Vscode,以提供更流暢的體驗,后續(xù)我們會介紹如何將其與這些工具結(jié)合使用。

它不僅僅能夠單步執(zhí)行,還能在 循環(huán)迭代中來回移動 ,并查看所選表達式的值如何變化:

圖片

通過 birdseye 你能很容易地知道哪些表達式引發(fā)了異常:

圖片

你也能夠展開具體的數(shù)據(jù)結(jié)構(gòu)和對象以查看其內(nèi)容:

圖片

調(diào)用會按功能組織(文件組織)并進行時間排序進行顯示,讓你一目了然地看到發(fā)生了什么:

圖片

1.快速上手

首先,使用 pip 安裝 birdseye :

pip install birdseye

然后,對需要進行調(diào)試的函數(shù)使用eye裝飾器:

from birdseye import eye

@eye
def foo():

在你調(diào)用該函數(shù)完成后,在終端運行命令打開Birdseye的Web服務:

python -m birdseye

圖片

在瀏覽器打開 http://localhost:7777 就能看到需要調(diào)試的函數(shù)執(zhí)行流程了。點擊下圖的按鈕即可跳轉(zhuǎn)到最新的函數(shù)調(diào)用。

圖片

2.在Pycharm中集成調(diào)試

在 Pycharm 的 Settings 中,點擊 Plugins 插件市場搜索 birdseye 點擊 install 安裝。

圖片

安裝完成后重啟Pycharm,就可以在 Pycharm 中使用 birdseye了:

圖片

圖片

圖片

默認情況下,該插件還可以為你自動運行Birdseye服務器,因此就不需要輸入 python -m birdseye 那行命令了。

3.在VSCode中集成調(diào)試

在VSCode中繼承調(diào)試Birdseye也非常方便,點擊左側(cè)的擴展商店,在彈出框中輸入搜索 birdseye,并點擊 install 安裝:

圖片

安裝完成后,點擊 F1 輸入Birdseye,就能顯示調(diào)試界面:

圖片

圖片

如果無法正常顯示右側(cè)調(diào)試界面,并提示未安裝birdseye,但實際上你已經(jīng)安裝成功了,這一般是路徑錯誤導致的,請在擴展設置中手動更改python路徑為你安裝了Birdseye的Python。

圖片

4.美中不足

Birdseye 是一個非常強大的調(diào)試工具,但我認為這還是有缺點可以改善的:

1.為了防止堆棧過大,每個迭代它最多只保留6個(前三、末三)元素:

圖片

因此如果你想看一些特殊元素值的執(zhí)行情況,它可能不會如你所愿。

不過,不需要擔心某些分支你調(diào)試不到,因為 birdseye 有個保險機制: 如果一個表達式僅在某種特定情況下會被執(zhí)行,那么執(zhí)行時的元素也會被加入到可調(diào)試元素中

2.由于需要記錄堆棧,程序會大大減慢速度,因此它絕對不適合上到生產(chǎn)環(huán)境。

3.每個函數(shù)調(diào)用,Birdseye 都需要收集許多數(shù)據(jù),對于某些極其復雜的函數(shù)調(diào)用,可能會引發(fā)內(nèi)存問題。

如果你不擔心這三個缺點,而且希望能快速方便地看到函數(shù)中不同分支的執(zhí)行情況,那么Birdseye就是你的不二之選。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    FPGA調(diào)試工具-chipscope

    FPGA調(diào)試工具chipscope,學習與使用FPGA必用的工具。。
    發(fā)表于 03-23 09:45 ?86次下載

    串口調(diào)試工具

    串口調(diào)試工具 便于單片機下載 串口調(diào)試工具 串口調(diào)試工具
    發(fā)表于 11-20 16:35 ?42次下載

    舵機調(diào)試工具

    舵機調(diào)試工具、直流電機的速度控制+測試程序。
    發(fā)表于 02-23 16:08 ?0次下載

    舵機調(diào)試工具

    飛思卡爾智能車舵機調(diào)試工具,其他舵機調(diào)試可自行修改舵機參數(shù)處理
    發(fā)表于 02-24 17:25 ?8次下載

    串口調(diào)試工具

    串口調(diào)試工具
    發(fā)表于 12-28 10:16 ?172次下載

    介紹Lauterbach調(diào)試工具的應用

    該演示由Lauterbach中國團隊提供,展現(xiàn)您如何通過Lauterbach強大的嵌入式調(diào)試工具Trace32來調(diào)試和分析運行在Altera Cyclone V SoC芯片上面的軟件。Lauterbach
    的頭像 發(fā)表于 06-26 08:09 ?5575次閱讀

    初學GDB調(diào)試工具需要注意的事項

    GDB是一個由GNU開源組織發(fā)布的、UNIX/LINUX操作系統(tǒng)下的、基于命令行的、功能強大的程序調(diào)試工具。相比于VS里面的圖形化調(diào)試工具,其功能更加強大。
    發(fā)表于 05-16 17:45 ?1098次閱讀
    初學GDB<b class='flag-5'>調(diào)試工具</b>需要注意的事項

    串口調(diào)試工具

    串口調(diào)試工具免費下載。
    發(fā)表于 09-13 17:41 ?34次下載

    分享Perl和Python腳本輕量實用的調(diào)試工具

    Perl和Python作為目前芯片開發(fā)流程中最為流行的腳本語言,本文將分別介紹它們輕量且實用的調(diào)試工具(Debugger),讓你在調(diào)試腳本的時候不再抓瞎。
    的頭像 發(fā)表于 01-21 17:25 ?1873次閱讀
    分享Perl和<b class='flag-5'>Python</b>腳本輕量實用的<b class='flag-5'>調(diào)試工具</b>

    調(diào)試工具檢測

    調(diào)試工具檢測
    發(fā)表于 01-31 15:01 ?0次下載

    Python調(diào)試工具-Birdseye

    Birdseye是一個Python調(diào)試器,它在函數(shù)調(diào)用中記錄表達式的值,并讓你在函數(shù)**退出**后輕松查看它們
    的頭像 發(fā)表于 02-24 10:55 ?619次閱讀
    <b class='flag-5'>Python</b><b class='flag-5'>調(diào)試工具</b>-<b class='flag-5'>Birdseye</b>

    分享一個非常強大的串口調(diào)試工具

    LLCOM是一個可運行l(wèi)ua腳本的高自由度串口調(diào)試工具。
    的頭像 發(fā)表于 05-29 09:54 ?3972次閱讀
    分享一個非常<b class='flag-5'>強大</b>的串口<b class='flag-5'>調(diào)試工具</b>

    modbus調(diào)試工具

    modbus調(diào)試工具
    發(fā)表于 04-28 13:50 ?89次下載

    串口調(diào)試工具

    串口調(diào)試工具
    發(fā)表于 04-28 13:53 ?7次下載

    Birdseye極其強大Python調(diào)試工具

    Birdseye是一個Python調(diào)試器,它在函數(shù)調(diào)用中記錄表達式的值,并讓你在函數(shù)** 退出 **后輕松查看它們,例如: 無論你如何運行或編輯代碼,都可以使用Birdseye。只需要
    的頭像 發(fā)表于 11-01 09:50 ?368次閱讀
    <b class='flag-5'>Birdseye</b>:<b class='flag-5'>極其</b><b class='flag-5'>強大</b>的<b class='flag-5'>Python</b><b class='flag-5'>調(diào)試工具</b>