溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Jupyter怎么用

發(fā)布時(shí)間:2022-01-17 10:06:16 來(lái)源:億速云 閱讀:169 作者:柒染 欄目:大數(shù)據(jù)

今天給大家介紹一下Jupyter怎么用。文章的內(nèi)容小編覺(jué)得不錯(cuò),現(xiàn)在給大家分享一下,覺(jué)得有需要的朋友可以了解一下,希望對(duì)大家有所幫助,下面跟著小編的思路一起來(lái)閱讀吧。

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ì)有開發(fā)者想到用 Jupyter 做 Debug。


Jupyter怎么用

           
盡管很多讀者可能認(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è)月的開發(fā),他們很高興能第一次發(fā)布 Jupyter 可視化 Debugger。

雖然這只是第一版,但目前已經(jīng)可以設(shè)置常見的斷點(diǎn) Debug,查看各種變量、執(zhí)行模塊等信息。

Jupyter怎么用


新工具的用法也很簡(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

只要裝好前端與后端,我們就可以直接使用了。開發(fā)者還提供了 Debug 的線上體驗(yàn)版,不需要安裝任何東西就能體驗(yà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)開發(fā)者希望構(gòu)建 Python、Lua 等擁有 C、C++ API 的語(yǔ)言內(nèi)核時(shí),它非常有用。

目前已經(jīng)有一些內(nèi)核使用 xeus 進(jìn)行開發(fā),Xeus-python 內(nèi)核是我們做 Python 開發(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ā)模型,它允許在不同的線程中運(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ì)用戶對(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 刪了,那么用戶在 Dubug 的時(shí)候希望運(yùn)行到那些代碼又怎么辦?

 如下動(dòng)圖所示,該插件支持特定用例,并能在只讀模式下查看以前執(zhí)行過(guò)的 cell。

Jupyter怎么用

進(jìn)入已刪除的單元格            

Jupyter怎么用

在 JupterLab 中調(diào)試代碼控制臺(tái)            

Jupyter怎么用

在 JupyterLab 中調(diào)試文件            

可以在 notebook 級(jí)別上啟用調(diào)試,用戶可以在調(diào)試 notebook 的同時(shí)在另一個(gè) notebook 上工作。

Jupyter怎么用

同時(shí)調(diào)試多個(gè)筆記本

可以使用樹狀查看器和表狀查看器檢查變量:

Jupyter怎么用

變量瀏覽器            

JupyterLab 的 debugger 插件目標(biāo)是與任何支持調(diào)試內(nèi)核一并使用。通過(guò) Debug Adapter Protocol,debugger 插件可以抽象出針對(duì)于特定語(yǔ)言的功能,并為用戶提供匹配的調(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 方式幫用戶找到代碼問(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)圖。

Jupyter怎么用

           
同時(shí)也會(huì)根據(jù)數(shù)據(jù)結(jié)構(gòu)以不同的方式展現(xiàn),例如樹形、表格、曲線和圖等。

Jupyter怎么用


同時(shí)還內(nèi)置了其他可自定義的可視化調(diào)節(jié)器,可以根據(jù)面對(duì)不同的處理對(duì)象,可選擇更易于理解的可視化方式。比如圖表可視化,Plotly 可視化,Tree 可視化,網(wǎng)格可視化,文本可視化等等。

Jupyter怎么用

Plotly 可視化

Jupyter怎么用

AST 可視化            

不過(guò)這款 VS Code 的 debug 工具開發(fā)者正在探討其對(duì) Python 的支持,而對(duì)于 Python 的完美支持會(huì)使得該項(xiàng)目更加便捷且適用。
而對(duì)于 debug 來(lái)說(shuō),不管最終是采用的是 print()大法,或是善用 assert 語(yǔ)句,亦或是以直接設(shè)置斷點(diǎn),包括各種新推出的 debug 工具。單從輔助工具角度層面看,只要它能夠提高工作效率,不管是哪款 debug 工具,找到適合你的那便是值得一試。

以上就是Jupyter怎么用的全部?jī)?nèi)容了,更多與Jupyter怎么用相關(guān)的內(nèi)容可以搜索億速云之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會(huì)給大家增添更多知識(shí),希望大家能夠支持一下億速云!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI