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的自動保存功能。

***,附上Jupytext的傳送門:
https://github.com/mwouts/jupytext