Jupyter Notebook的三大短板,都被這個新工具補齊了
在機器學習和資料科學領域,Jupyter已經家喻戶曉。它把筆記、程式碼、圖表、註釋融合在一個互動式的筆記本里,還能新增各種擴充套件功能。可謂機器學習入門進階研究之神器。
可是,神器也有短板:
● 檔案是固定的JSON格式,體積還非常大;
● 要在瀏覽器裡編輯文件好煩,好懷念自己喜歡的編輯器;
● 版本控制好艱難,想用標準的合併工具來協作,可是人家只支援文字!
最近推出的一個工具,幫Jupyter Notebook把這些短板補齊了。
這個工具叫 Jupytext ,顧名思義,能夠把Jupyter Notebook的內容轉化成純文字,用你最順手的IDE開啟。
於是,編輯協作版本控制等一系列問題,迎刃而解。
Jupytext現在支援的語言還不能覆蓋Jupyter Notebook的全部,但搞定了最流行的幾種。它支援Jupyter Notebook和下面這些格式之間的相互轉換:
Julia指令碼(.jl)、Python指令碼(.py)、R指令碼(.R)、Markdown檔案(.md)、R Markdown檔案(.Rmd)。
Jupytext作者Marc Wouts在一篇部落格裡展示了怎樣藉助這個工具在IDE或者編輯器裡來編輯Jupyter Notebook、進行版本控制。
上面就是Jupytext使用過程的一個例子:把一個Jupyter Notebook儲存為.ipynb和.py兩種檔案格式、用PyCharm開啟.py指令碼來修改程式碼、儲存之後重新整理瀏覽器,就能在Jupyter Notebook裡看到新結果了。
想要在一大堆程式碼和筆記裡查詢內容、編輯、執行cell、debug……用IDE比用Jupyter Notebook要方便得多。
上圖則是對文字執行版本檢查,然後將有意義的差異合併的過程。
看起來不錯,怎麼安裝呢?
這個工具支援pypi.安裝,程式碼是這樣的:
upytext from pip
pip install jupytext --upgrade
# Append this to .jupyter/jupyter_notebook_config.py c.NotebookApp.contents_manager_class="jupytext.TextFileContentsManager"
# And restart your notebook server
jupyter notebook
在Jupyter Notebook的元資料裡輸入 jupytext_formats ,就能啟用筆記本和文字檔案的配對,實現在IDE裡編輯指令碼,Notebook裡也跟著更新的效果。
如果想在編輯文字檔案的時候還開著Jupyter,可以在一個單元格里執行 %autosave 0 ,關掉Jupyter的自動儲存功能。
