<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          神器 jupyter,終于來了!

          共 3301字,需瀏覽 7分鐘

           ·

          2021-01-03 21:37


          點擊上方藍字關注我們



          點擊上方“印象python”,選擇“星標”公眾號
          重磅干貨,第一時間送達!

          來源:機器之心

          以后 Jupyter 也能做可視化 Debug,Jupyter 團隊發(fā)布第一個 Debug 插件與內核。


          Python 代碼編輯器怎么選?PyCharm、VS Code、Jupyter Notebook 都各有特色,Jupyter 適合做數據分析這些需要可視化的操作,PyCharm 更適合做完整的 Python 項目。然而,因為交互式操作,很少會有開發(fā)者想到用 Jupyter 做 Debug。


          盡管很多讀者可能認為 Jupyter 用來做展示和小型試驗就足夠了,Debug 并沒有太大的需求,但彌補上 Jupyter 缺失的一環(huán),能讓它更好用,未來 Debug 也會作為默認模式。

          為什么 Jupyter 需要 Debug?

          Jupyter 這種工具雖然有很好的交互性能,但其也明白,對于大型代碼庫,最好還是用傳統(tǒng)的 IDE 比較靠譜。因此為了彌補這一缺陷,Jupyter 項目在過去幾年也希望通過 JupyterLab 來加強對大型代碼庫的處理過程。

          然而,JupyterLab 還是有一大缺陷,它不能通過可視化的方式進行 Debug,這限制了進一步的調試。這幾天,Jupyter 團隊表示,經過幾個月的開發(fā),他們很高興能第一次發(fā)布 Jupyter 可視化 Debugger。

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


          新工具的用法也很簡單,很常見的 Debug 方式差不多。如果讀者想要安裝這個新工具,那么首先你需要為 JupyterLab 裝前端插件:
          jupyter labextension install @jupyterlab/debugger
          至于后端 Kernel,Jupyter 團隊表示目前 kernel 需要實現 Jupyter Debug Protocol,因此暫時只能用xeus-python
          conda install xeus-python -c conda-forge
          只要裝好前端與后端,我們就可以直接使用了。開發(fā)者還提供了 Debug 的線上體驗版,不需要安裝任何東西就能體驗。

          在線 Debug 環(huán)境:
          https://hub.gke.mybinder.org/user/jupyterlab-debugger-hwxovlw4/lab/tree/examples/index.ipynb

          Xeus-python:第一個支持 Jupyter Debug 的內核

          Xeus 是 Jupyter kernel protocol 的 C++實現,它本身并不是一個內核,而是能幫助構建內核的庫。當開發(fā)者希望構建 Python、Lua 等擁有 C、C++ API 的語言內核時,它非常有用。

          目前已經有一些內核使用 xeus 進行開發(fā),Xeus-python 內核是我們做 Python 開發(fā)時可選的一個內核,它去年就已經有發(fā)布。Xeus-python 之所以被 Jupyter 團隊選為第一個實現 Debug 的內核,主要是它有以下兩大優(yōu)勢:

          • Xeus-python 具有可插拔的并發(fā)模型,它允許在不同的線程中運行 Control channel 的處理過程;

          • Xeus-python 有非常輕量級的代碼庫,因此迭代與更新都非常方便。


          短期內,xeus-python 還會有進一步提升的計劃,例如添加 Ipython 魔術方法,優(yōu)化 xeus-python 的 PyPI 等。

          深入至 debugger 的前端架構

          JupyterLab 的 debugger 擴展針對用戶對 IDE 的使用習慣提供了通常性功能:

          • 帶有資源管理器的側邊欄,無序列表,源預覽以及允許導航至調用堆棧

          • 可直接在代碼旁(即在代碼單元以及代碼控制臺中)設置斷點的功能

          • 可視化的標記,指示當前執(zhí)行停止的位置


          當使用 Jupyter 筆記本時,執(zhí)行的狀態(tài)保存在內核中。但是如果我們執(zhí)行了一個 cell,然后又把整個 cell 刪了,那么用戶在 Dubug 的時候希望運行到那些代碼又怎么辦?

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

          進入已刪除的單元格

          在 JupterLab 中調試代碼控制臺

          在 JupyterLab 中調試文件

          可以在 notebook 級別上啟用調試,用戶可以在調試 notebook 的同時在另一個 notebook 上工作。

          同時調試多個筆記本

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

          變量瀏覽器

          JupyterLab 的 debugger 插件目標是與任何支持調試內核一并使用。通過 Debug Adapter Protocol,debugger 插件可以抽象出針對于特定語言的功能,并為用戶提供匹配的調試界面。

          并且團隊計劃在 2020 年對 debugger 的體驗進行重大改進,例如在變量瀏覽器中支持豐富的渲染,在 UI 中支持條件斷點。

          VS Code 可視化 Debug 工具

          Debug 是條漫漫長路,不久前機器之心也介紹過一款 VS Code 實時可視化 debug 工具,在此也可以作為參考。以一種更優(yōu)雅、更簡潔的 debug 方式幫用戶找到代碼問題所在是未來優(yōu)化的方向之一,而之前所介紹這款可視化 debug 能夠快速展示數據結構。

          從效果層面上看此款工具更加驚艷,而且跟以往傳統(tǒng) debug 方式的展示形式完全不同,比如將斷點設置為第 32 行定義雙向鏈表,隨后一行行運行代碼就會在右圖展現出對應的數據結構圖。


          同時也會根據數據結構以不同的方式展現,例如樹形、表格、曲線和圖等。


          同時還內置了其他可自定義的可視化調節(jié)器,可以根據面對不同的處理對象,可選擇更易于理解的可視化方式。比如圖表可視化,Plotly 可視化,Tree 可視化,網格可視化,文本可視化等等。

          Plotly 可視化

          AST 可視化

          不過這款 VS Code 的 debug 工具開發(fā)者正在探討其對 Python 的支持,而對于 Python 的完美支持會使得該項目更加便捷且適用。

          而對于 debug 來說,不管最終是采用的是 print()大法,或是善用 assert 語句,亦或是以直接設置斷點,包括各種新推出的 debug 工具。單從輔助工具角度層面看,只要它能夠提高工作效率,不管是哪款 debug 工具,找到適合你的那便是值得一試。

          參考鏈接:
          https://blog.jupyter.org/a-visual-debugger-for-jupyter-914e61716559
          https://www.reddit.com/r/MachineLearning/comments/foum00/n_jupyter_visual_debugger/

          回復下方 「關鍵詞」,獲取優(yōu)質資源


          回復關鍵詞 「linux」,即可獲取 185 頁 Linux 工具快速教程手冊和154頁的Linux筆記。


          回復關鍵詞 「Python進階」,即可獲取 106 頁 Python 進階文檔 PDF


          回復關鍵詞 「Python面試題」,即可獲取最新?100道?面試題 PDF


          回復關鍵詞 「python數據分析」,即可獲取47頁python數據分析與自然語言處理的 PDF


          回復關鍵詞 「python爬蟲」,滿滿五份PPT爬蟲教程和70多個案例


          回復關鍵詞 「Python最強基礎學習文檔」,即可獲取 168 頁 Python 最強基礎學習文檔 PDF,讓你快速入門Python

          推薦我的微信號

          來圍觀我的朋友圈,我的經驗分享,技術更新,不定期送書,坑位有限,速速掃碼添加!
          備注:開發(fā)方向_昵稱_城市,另送你10本Python電子書。

          點個在看你最好看

          瀏覽 61
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青草视频色版 | 天天干天天做天天综合 | 中国操逼毛片 | 中文字幕免费观看视频 | 中国黄色在线视频 |