讓編程就像寫小說,這樣的Jupyter你值得擁有

全文共1670字,預計學習時長7分鐘


讓編程就像寫小說,這樣的Jupyter你值得擁有

圖源:datacamp


Notebooks一直是增進軟件創意開發的工具。數據科學家用Jupyter記錄他們的工作、探索和實驗新算法,快速實踐新方法並實時觀察結果。當時機成熟時,軟件開發人員就會用經典的IDE(集成開發環境),如VisualStudio Code和Pycharm,來將創意實現為庫和框架。


那麼,有沒有一種方法可以將Jupyter轉化成一個成熟的IDE,將最初概念變成功能強大且可重用的模塊呢?


為了解決這個問題,包括QuantStack、Two Sigma、Bloomberg和fast.ai在內的幾家機構開發了兩個新工具:在Jupyter中添加了nbdev和可視化調試器。


讓編程就像寫小說,這樣的Jupyter你值得擁有

文學編程與nbdev


1983年,Donald Knuth提出了一種新的編程範型,稱為“文學編程”。


他說文學編程是“一種將編程語言與文檔語言相結合的方法,從而使編寫的程序比只用高級語言編寫的程序更強大、更便捷、更易維護,而且可以說更有趣。主要思想是把程序當作文學作品,用人的語言而不是計算機的”。


讓編程就像寫小說,這樣的Jupyter你值得擁有

圖源:unsplash


Jeremy Howard和Sylvain Gugger對這個概念的設計非常著迷,去年年底他們推出了nbdev。該框架可以在熟悉的Jupyter Notebook環境中編寫代碼,探索和實驗不同的方法,直到找到問題的有效解決方案。然後通過使用某些關鍵詞,nbdev可以將實用功能提取到一個完整的python庫中。


確切來說,nbdev通過添加以下支持來補充Jupyter:


· 根據最佳實踐,從notebook中自動創建python模塊

· 從代碼中自動創建可搜索的超鏈接文檔

· 將pip安裝程序上傳到PyPI

· 在標準IDE中編輯和導航代碼

· 將所有更改同步回notebook

· 測試

· 連續集成

· 處理版本控制衝突


nbdev使軟件開發員和數據科學家能夠在Jupyter環境中,根據最佳實踐,開發完整的python庫。nbdev設置於PyPI上,要進行安裝只需運行:


<code>pip install nbdev/<code>


對於可編輯安裝,請使用以下命令:


<code>git clone https://github.com/fastai/nbdev
pip install -e nbdev/<code>
讓編程就像寫小說,這樣的Jupyter你值得擁有

查缺補漏


雖然nbdev涵蓋了在Jupyter內部進行類似IDE開發所需的大部分工具,但仍然缺少一個部分:可視化調試器。


讓編程就像寫小說,這樣的Jupyter你值得擁有

圖源:unsplash


因此,由多家機構的開發人員組成的團隊,近日首次公開發布了Jupyter可視化調試器。該調試器具有人們期望的IDE調試器的大部分功能:


· 變量探測器、斷點窗口列表和源預覽

· 顯示當前執行已停止位置的標誌

· 可以瀏覽調用堆棧(下一行、插入、跳出等)

· 可以在興趣線旁邊直接設置斷點窗口


為了利用這個新工具,需要一個在後端實現Jupyter調試協議的內核。第一步是安裝這樣的內核。到目前為止唯一可以實現的是xeus-python。要進行安裝,只需運行:


<code>conda install xeus-python -c conda-forge/<code>


然後,運行Jupyter Lab,在側邊列上搜索“擴展管理器”並啟用(如果已經啟用可以跳過這一步)。


側邊列會出現一個新按鈕。要安裝調試器,只需轉到新啟用的“擴展管理器”按鈕並搜索“調試器”擴展。


讓編程就像寫小說,這樣的Jupyter你值得擁有

啟用調試器


安裝後,Jupyter Lab將要求執行構建,以包含最新的更改。點擊接受,幾秒鐘後,就可以運行了。


為了測試調試器,我們創建了一個新的xpython notebook並編寫了一個簡單的函數。像往常一樣運行函數並觀察結果。若要啟用調試器,請點擊窗口右上方的關聯按鈕。


讓編程就像寫小說,這樣的Jupyter你值得擁有

啟用調試器


現在準備再次運行該函數。只是這一次,執行將在設置的斷點窗口停止,這樣就能夠查看程序的狀態。


讓編程就像寫小說,這樣的Jupyter你值得擁有

調試代碼


可以看到程序在斷點窗口處停止。打開調試器面板,可以看到變量、斷點窗口列表、調用堆棧導航和源代碼。


Jupyter的新可視化調試器提供了期望的IDE調試器的所有功能。它仍在開發中,因此還有很多新功能可以期待。其開發者計劃在2020年發佈以下功能:


· 在變量探測器中可呈現豐富的mime類型

· 啟用盡可能多的內核調試

· 用戶界面中可支持條件斷點窗口

· 從JupyterLab Voilà預覽擴展中啟用Voilà控制面板的調試


Jupyter Notebook一直是探索和實驗代碼的好方法。然而,軟件開發人員通常會使用一個成熟的IDE,記錄工作,以創建可用於生產的庫。這不僅低效,而且會造成Jupyter價值的損失。


讓編程就像寫小說,這樣的Jupyter你值得擁有

圖源:unsplash


nbdev和可視化調試器是兩個旨在縮小notebook和IDE之間差距的項目。此外,notebook可實現更好的文檔,包括圖表、圖像和視頻,有時還提供了更好的工具,如自動補全功能。


讓編程就像寫小說,這樣的Jupyter你值得擁有!


讓編程就像寫小說,這樣的Jupyter你值得擁有

留言點贊關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範


分享到:


相關文章: