以后 Jupyter 也能做可視化 Debug,Jupyter 團(tuán)隊(duì)發(fā)布第一個(gè) Debug 插件與內(nèi)核。
Python 代碼編輯器怎么選?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 適合做數(shù)據(jù)分析這些需要可視化的操作,PyCharm 更適合做完整的 Python 項(xiàng)目。然而,因?yàn)榻换ナ讲僮?,很少?huì)有開(kāi)發(fā)者想到用 Jupyter 做 Debug。
盡管很多讀者可能認(rèn)為 Jupyter 用來(lái)做展示和小型試驗(yàn)就足夠了,Debug 并沒(méi)有太大的需求,但彌補(bǔ)上 Jupyter 缺失的一環(huán),能讓它更好用,未來(lái) Debug 也會(huì)作為默認(rèn)模式。 為什么 Jupyter 需要 Debug? Jupyter 這種工具雖然有很好的交互性能,但其也明白,對(duì)于大型代碼庫(kù),最好還是用傳統(tǒng)的 IDE 比較靠譜。因此為了彌補(bǔ)這一缺陷,Jupyter 項(xiàng)目在過(guò)去幾年也希望通過(guò) JupyterLab 來(lái)加強(qiáng)對(duì)大型代碼庫(kù)的處理過(guò)程。
然而,JupyterLab 還是有一大缺陷,它不能通過(guò)可視化的方式進(jìn)行 Debug,這限制了進(jìn)一步的調(diào)試。這幾天,Jupyter 團(tuán)隊(duì)表示,經(jīng)過(guò)幾個(gè)月的開(kāi)發(fā),他們很高興能第一次發(fā)布 Jupyter 可視化 Debugger。 雖然這只是第一版,但目前已經(jīng)可以設(shè)置常見(jiàn)的斷點(diǎn) Debug,查看各種變量、執(zhí)行模塊等信息。
新工具的用法也很簡(jiǎn)單,很常見(jiàn)的 Debug 方式差不多。如果讀者想要安裝這個(gè)新工具,那么首先你需要為 JupyterLab 裝前端插件:
jupyter labextension install @jupyterlab/debugger至于后端 Kernel,Jupyter 團(tuán)隊(duì)表示目前 kernel 需要實(shí)現(xiàn) Jupyter Debug Protocol,因此暫時(shí)只能用xeus-python:
conda install xeus-python -c conda-forge只要裝好前端與后端,我們就可以直接使用了。開(kāi)發(fā)者還提供了 Debug 的線(xiàn)上體驗(yàn)版,不需要安裝任何東西就能體驗(yàn)。 在線(xiàn) Debug 環(huán)境: https://hub.gke.mybinder.org/user/jupyterlab-debugger-hwxovlw4/lab/tree/examples/index.ipynb Xeus-python:第一個(gè)支持 Jupyter Debug 的內(nèi)核 Xeus 是 Jupyter kernel protocol 的 C++實(shí)現(xiàn),它本身并不是一個(gè)內(nèi)核,而是能幫助構(gòu)建內(nèi)核的庫(kù)。
當(dāng)開(kāi)發(fā)者希望構(gòu)建 Python、Lua 等擁有 C、C++ API 的語(yǔ)言?xún)?nèi)核時(shí),它非常有用。 目前已經(jīng)有一些內(nèi)核使用 xeus 進(jìn)行開(kāi)發(fā),Xeus-python 內(nèi)核是我們做 Python 開(kāi)發(fā)時(shí)可選的一個(gè)內(nèi)核,它去年就已經(jīng)有發(fā)布。Xeus-python 之所以被 Jupyter 團(tuán)隊(duì)選為第一個(gè)實(shí)現(xiàn) Debug 的內(nèi)核,主要是它有以下兩大優(yōu)勢(shì):
Xeus-python 具有可插拔的并發(fā)模型,它允許在不同的線(xiàn)程中運(yùn)行 Control channel 的處理過(guò)程;
Xeus-python 有非常輕量級(jí)的代碼庫(kù),因此迭代與更新都非常方便。
短期內(nèi),xeus-python 還會(huì)有進(jìn)一步提升的計(jì)劃,例如添加 Ipython 魔術(shù)方法,優(yōu)化 xeus-python 的 PyPI 等。 深入至 debugger 的前端架構(gòu) JupyterLab 的 debugger 擴(kuò)展針對(duì)用戶(hù)對(duì) IDE 的使用習(xí)慣提供了通常性功能:
帶有資源管理器的側(cè)邊欄,無(wú)序列表,源預(yù)覽以及允許導(dǎo)航至調(diào)用堆棧
可直接在代碼旁(即在代碼單元以及代碼控制臺(tái)中)設(shè)置斷點(diǎn)的功能
可視化的標(biāo)記,指示當(dāng)前執(zhí)行停止的位置
當(dāng)使用 Jupyter 筆記本時(shí),執(zhí)行的狀態(tài)保存在內(nèi)核中。但是如果我們執(zhí)行了一個(gè) cell,然后又把整個(gè) cell 刪了,那么用戶(hù)在 Dubug 的時(shí)候希望運(yùn)行到那些代碼又怎么辦? 如下動(dòng)圖所示,該插件支持特定用例,并能在只讀模式下查看以前執(zhí)行過(guò)的 cell。
進(jìn)入已刪除的單元格
在 JupterLab 中調(diào)試代碼控制臺(tái)
在 JupyterLab 中調(diào)試文件 可以在 notebook 級(jí)別上啟用調(diào)試,用戶(hù)可以在調(diào)試 notebook 的同時(shí)在另一個(gè) notebook 上工作。
同時(shí)調(diào)試多個(gè)筆記本 可以使用樹(shù)狀查看器和表狀查看器檢查變量:
變量瀏覽器 JupyterLab 的 debugger 插件目標(biāo)是與任何支持調(diào)試內(nèi)核一并使用。通過(guò) Debug Adapter Protocol,debugger 插件可以抽象出針對(duì)于特定語(yǔ)言的功能,并為用戶(hù)提供匹配的調(diào)試界面。 并且團(tuán)隊(duì)計(jì)劃在 2020 年對(duì) debugger 的體驗(yàn)進(jìn)行重大改進(jìn),例如在變量瀏覽器中支持豐富的渲染,在 UI 中支持條件斷點(diǎn)。 VS Code 可視化 Debug 工具 Debug 是條漫漫長(zhǎng)路,不久前機(jī)器之心也介紹過(guò)一款 VS Code 實(shí)時(shí)可視化 debug 工具,在此也可以作為參考。
以一種更優(yōu)雅、更簡(jiǎn)潔的 debug 方式幫用戶(hù)找到代碼問(wèn)題所在是未來(lái)優(yōu)化的方向之一,而之前所介紹這款可視化 debug 能夠快速展示數(shù)據(jù)結(jié)構(gòu)。 從效果層面上看此款工具更加驚艷,而且跟以往傳統(tǒng) debug 方式的展示形式完全不同,比如將斷點(diǎn)設(shè)置為第 32 行定義雙向鏈表,隨后一行行運(yùn)行代碼就會(huì)在右圖展現(xiàn)出對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)圖。
同時(shí)也會(huì)根據(jù)數(shù)據(jù)結(jié)構(gòu)以不同的方式展現(xiàn),例如樹(shù)形、表格、曲線(xiàn)和圖等。
同時(shí)還內(nèi)置了其他可自定義的可視化調(diào)節(jié)器,可以根據(jù)面對(duì)不同的處理對(duì)象,可選擇更易于理解的可視化方式。比如圖表可視化,Plotly 可視化,Tree 可視化,網(wǎng)格可視化,文本可視化等等。
Plotly 可視化
AST 可視化 不過(guò)這款 VS Code 的 debug 工具開(kāi)發(fā)者正在探討其對(duì) Python 的支持,而對(duì)于 Python 的完美支持會(huì)使得該項(xiàng)目更加便捷且適用。 而對(duì)于 debug 來(lái)說(shuō),不管最終是采用的是 print()大法,或是善用 assert 語(yǔ)句,亦或是以直接設(shè)置斷點(diǎn),包括各種新推出的 debug 工具。單從輔助工具角度層面看,只要它能夠提高工作效率,不管是哪款 debug 工具,找到適合你的那便是值得一試。 參考鏈接: https://blog.jupyter.org/a-visual-debugger-for-jupyter-914e61716559 https://www.reddit.com/r/MachineLearning/comments/foum00/n_jupyter_visual_debugger/
責(zé)任編輯:xj
原文標(biāo)題:神器 jupyter,終于來(lái)了!
文章出處:【微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86774 -
代碼編輯器
+關(guān)注
關(guān)注
0文章
16瀏覽量
6124
原文標(biāo)題:神器 jupyter,終于來(lái)了!
文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
VirtualLab Fusion應(yīng)用:3D系統(tǒng)可視化
可視化組態(tài)物聯(lián)網(wǎng)平臺(tái)是什么
VirtualLab Fusion應(yīng)用:光學(xué)系統(tǒng)的3D可視化

可視化數(shù)據(jù)大屏:連線(xiàn)構(gòu)建視覺(jué)新秩序 #數(shù)據(jù)可視化 #可視化大屏
VirtualLab Fusion中的可視化設(shè)置
VirtualLab Fusion應(yīng)用:光波導(dǎo)k域布局可視化(“神奇的圓環(huán)”)
七款經(jīng)久不衰的數(shù)據(jù)可視化工具!
光學(xué)系統(tǒng)的3D可視化
什么是大屏數(shù)據(jù)可視化?特點(diǎn)有哪些?
如何找到適合的大屏數(shù)據(jù)可視化系統(tǒng)
智慧能源可視化監(jiān)管平臺(tái)——助力可視化能源數(shù)據(jù)管理

評(píng)論