那些在線的Jupyter

Jupyter
如果你是python的初學者, 非常推薦Jupyter.

Juypter是一個交互式的編程環境, 號稱

The Notebook has support for over 40 programming languages,
including Python, R, Julia, and Scala.
支持超過40種語言, 其中包括Python, R, Julia和Scala. 雖然除了Python, 目前提到的其他語言我還都不會, 但是看起來是很強大很有前途的樣子.

Jupyter的編程環境我很喜歡, 你可以寫一段markdown圖文並茂的說明, 再寫一段代碼, 然後單獨運行剛剛寫過的這一段代碼, 看到結果, 調試代碼, 改好以後再進行下一段.

最終完成的文本+代碼, 是所謂的"文學編程", 文字甚至圖片說明作者的思路, 中間夾雜着代碼, 來教導計算機進行操作. 這樣帶來了完美的可讀性.

!不要! 相信什麼"代碼纔是最好的註釋".
那是穿格子襯衫背雙肩背半夜三點還在寫代碼的專職程序員才相信的東西.
如果你不是一個每天必須寫代碼十幾個小時的專業程序員, 而是利用代碼去完成自己專業的特殊需求, 可能一個程序要間斷好多天才能寫完, 那麼這種方式能夠幫你迅速找到前幾天的思路. 繼續完成之前的作品.

在本地安裝Jupyter(跳過吧, 別看)
Jupyter當然可以安裝在本地, 安裝好Anaconda以後, 相對比較容易安裝jupyter了.

但如果你之前只在windows上安裝過商業軟件, 一路點next, 或者在mac上從dmg中把應用程序直接拖動到文件夾裏就可以運行. 那麼安裝anaconda, jupyter, 以及在運行jupyter時再安裝各種python的依賴包, 是非常痛苦的.

完全不建議新手進行, 至於那些常年泡在linux裏面已經 "久病成醫 "的病友, 推薦你們試試.

在線的Jupyter
如果你是python的初學者, 非常推薦使用在線的Jupyter.

利用在線的Jupyter要輕鬆得多, 只需要有網絡連接, 有瀏覽器就可以了. 我測試了mac版的Chrome, Safari, 甚至android上的Chrome和iOS上的Safari, Chrome, 都可以運行在線的Jupyter.

目前已經有這些服務:

Cocalc
https://cocalc.com ,
這是一個科學計算平臺, 除了提供jupyter, 還提供了sagemath.
sagemath也是一個強大的數學計算工具, 可以當作一個開源的mathematica, 隨手解個方程, 求個微分之列都很方便.

CoCalc已經安裝好了大量的python包, 比如numpy, tensorflow, keras, pytorch. . .

Cocalc有免費版和付費版, 免費版沒有額外的網絡連接, 也就是說你無法在cocalc裏面再訪問其他網頁, 比如你用jupyter寫了一個網絡服務程序, 那麼是無法用在cocalc免費版裏面的. 用git也會受限制. 沒有網絡連接最麻煩的是如果cocalc沒有預裝的包, 你是無法自行安裝的. 不過如果確實是很常用有名的python包, 那麼可以向cocalc網站的支持發個email, 他們的響應速度超級快, 很有可能就幫你裝好了.

我寫過CoCalc的使用教程

Azure notebook
https://notebooks.azure.com
這是微軟提供的在線jupyter服務, 財大氣粗的微軟提供的內存, cpu, 存儲空間都不錯.

很有特色的功能有二:

方便一鍵clone, 看好其他人的做得不錯的東西, 可以方便clone一份自己研究.
可以從github導入, 只需要將看中的github repo頁面添加, 就可以自動clone, 如果對方更新了, 自己這邊也可以方便使用git pull
微軟的這個服務是有網絡連接的, 你可以遠程下載數據或者導入其他的庫. 因此如果出現沒有預裝的庫, 可以自己手動安裝. 但麻煩的是, 如果你的notebook停用1小時以後, 遠程的server就會停止, 然後你之前安裝的東西就會被清除(數據和文件不會), 所以如果有額外的庫, 就需要在每次打開的時候預先再次安裝一遍.

好在會有腳本可以做, 你可以參照這個帖子

到你的 library > settings > Environment
選擇 ShellScript 然後選擇 特定的腳本
保存
重啓 server
安裝pytorch的腳本例子:

export PATH=~/anaconda3_410/bin:$PATH
conda install pytorch torchvision -c soumith --yes
安裝其他的庫, 只需要在anaconda裏面搜索一下conda的安裝方法, 然後替換上面腳本中的conda install pytorch那一段.

其他
Mybinder
https://mybinder.org/
這個我也還沒用過, 據說可以從github裏面直接導入, 生成一個docker. 需要什麼庫的話, 好像也可以通過腳本預先聲明, 不一定像azure notebook那樣要反覆安裝.

Google Colaboratory
https://colab.research.google.com/
這是Google的jupyter服務, 但目前還沒有完全開放, 點擊註冊以後會有"您已成功加入到候補名單。一旦 Colaboratory 可供您使用,我們會立即發送電子郵件通知您。"

在移動設備上使用
主流的手機/平板瀏覽器, 上面的服務都可以訪問, 編輯的時候稍微有點彆扭, 特別是在小屏幕的時候, 操作也還是不夠方便, 但如果外接鍵盤/藍牙鍵盤也還是不錯的.

除了內置的瀏覽器, 我還發現了專用的iOS app, Juno 目前還處於testflight狀態, 可以去他家網頁上申請beta測試. Juno中還內置了Mybinder的demo. 如果你購買了cocalc付費版, 也可以開放出一個遠程的jupyter server供Juno使用.

自己建立Jupyter在線服務
開源社區現在越來越友好了, 有可能的話, 你也可以在自己的服務器或者VPS上建立一個在線的Jupyter服務, 爲自己/學生/客戶服務. 但我這麼怕麻煩的人, 本地電腦都懶得裝, 所以我都沒有測試過.

Jupyter Hub: https://github.com/jupyterhub/jupyterhub 這是jupyter官方的服務器安裝程序.

Binder Hub: https://github.com/jupyterhub/binderhub也是從屬與jupyter官方的, 但是用docker技術封裝, 大概安裝調試會方便一些吧.

Cocalc/sagemath: https://github.com/sagemathinc/cocalc 這個也是用docker的, 還帶有sagemath.

ps.
如果你在本地計算機上安裝了jupyter, 非常推薦下面這個插件, 能夠在保存jupyter文件的時候, 同時保存同名的 .html 和 .py 形式的文件. 這樣在其他的python程序中導入自己寫的函數會非常方便. 也很容易在github page上發佈文檔.

http://protips.maxmasnick.com/ipython-notebooks-automatically-export-py-and-html

作者:goldengrape
鏈接:https://www.jianshu.com/p/e009997ab5d8
來源:簡書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章