谷歌大神又一開源神器!Python代碼調試不選它選誰?

↑↑↑點擊上方藍字,回覆資料,10個G的驚喜

如果調試是Debug的必經之路,那麼編程應該將它考慮在內。今天就和大家分享一個代碼調試神器——Cyberbrain。



Cyberbrain是一個免費開源的Python代碼調試解決方案,它可視化程序執行以及每個變量的變化方式,讓程序員免受調試之苦。主要具有以下3個特性:
  • 回溯變量更改

  • 查看程序執行的每個狀態,包括變量的值

  • 循環調試


Cyberbrain並不會改變你的工作流程,運行一個程序(從 vscode 或命令行,都可以),一個新的面板將被打開,程序執行情況全部以可視化展示。



Cyberbrain如何安裝

Cyberbrain由一個Python庫和各種編輯器/ IDE集成組成。當前,它支持VS Code。要安裝Cyberbrain:


pip install cyberbrain
code --install-extension laike9m.cyberbrain


你也可以直接從VS Code上安裝。


如何使用

假設你想跟蹤一個函數foo,只需用@trace以下命令裝飾它:


from cyberbrain import trace
# As of now, you can only have one @trace decorator in the whole program.
# We may change this in version 2.0, see https://github.com/laike9m/Cyberbrain/discussions/73
@trace  # Disable tracing with `@trace(disabled=True)`
def foo():
    ...


以下gif演示了工作流程:




使用Cyberbrain,可能有哪些意外

Cyberbrain可能與其他調試器發生衝突。如果設置斷點並使用VSC的調試器,則Cyberbrain可能無法正常運行。

如果你打開了多個VS Code窗口,則將始終在第一個窗口中創建跟蹤圖。
當有多個裝飾器時,應將其@trace作爲最裏面的裝飾器。


@app.route("/")
@trace
def hello_world():
    x = [123]
    return "Hello, World!"



賽博大腦——數據流分析和變量跟蹤

與其他調試器不同,Cyberbrain可以顯示準確的數據流,並且可以在程序的每個狀態中持續存在。你不僅不需要記住任何事情,甚至你都不需要逐步執行操作,這樣一來就可以節省大量調試時間。

下圖是使用Cyberbrain進行調試的方法:



假如你想找出返回值錯誤的原因。通過查看圖表,你已經對導致返回值的原因有了一個大概的瞭解。

接下來,將鼠標懸停在“返回”節點上,所有相關值都會顯示出來,形成從函數開始到結束的跟蹤路徑:



只要動動鼠標就能找到問題,誰還會去用編譯器呢?


目標檢查

如果現在有一個大列表,但它無法與圖匹配,如何使用工具來檢查它的值?devtools可用於檢查值,如下所示。



啓動後,Cyberbrain會自動打開devtools窗口。將鼠標懸停在變量上時,其值將記錄在devtools控制檯中。因此,在這種情況下,儘管沒有足夠的空間在跟蹤圖中顯示整個列表,但是您仍然可以從devtools中檢查其值。

幾乎所有的Python調試器(PyCharm,VS Code等)都會截取參數,並且無法顯示大列表中的每個元素。但是我們相信“細節決定成敗”,每條信息可能都是有用的,不應忽略。因此,除非你明確指示,Cyberbrain不會截取參數。


循環

Cyberbrain還有另一個獨特的功能,你可以在調試時設置循環計數器。


由於實現非常複雜,因此存在一些已知的錯誤,不過隨着更新,應該會變得更好。




目前,Cyberbrain已經在Github上標星 1.5K ,累計分支  64  個。(Github地址: https://github.com/laike9m/Cyberbrain

最後,值得一提的是,創建者laike9m畢業於清華大學,谷歌軟件工程師,目前全職開發Cyberbrain工具。


來自:開源最前線(ID:OpenSourceTop) 
鏈接 :https://medium.com/analytics-vidhya/cyberbrain-python-debugging-redefined-1db4c47a4d32
 
    
    
    
也可以加一下老胡的微信
圍觀朋友圈~~~


推薦閱讀

(點擊標題可跳轉閱讀)

我愛線代,線代使我快樂

麻省理工學院計算機課程【中文版】

【清華大學王東老師】現代機器學習技術導論.pdf

機器學習中令你事半功倍的pipeline處理機制

機器學習避坑指南:訓練集/測試集分佈一致性檢查

機器學習深度研究:特徵選擇中幾個重要的統計學概念

老鐵,三連支持一下,好嗎?↓↓↓


本文分享自微信公衆號 - 機器學習算法與Python實戰(tjxj666)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章