Jupyter Notebook 使用技巧彙整:建置不同程式語言的核心

Jupyter Notebook 使用技巧彙整:建置不同程式語言的核心讓筆記本能執行 Python 2、Python 3、R、Julia 與 Scala 程式Yao-Jen KuoBlockedUnblockFollowFollowingMar 5Photo by Conner Baker on UnsplashThe Notebook has support for over 40 programming languages, including Python, R, Julia, and Scala.

Project JupyterJupyter Notebook 是一個建構於網頁應用程式的整合開發環境,允許資料科學團隊像是寫作筆記一般地撰寫程式、顯示程式輸出、圖形視覺化輸出、支援 Markdown 標記語言與 LaTex 數學方程式的文字段落,從 2014 年推出以來風靡資料科學生態圈,包含 Google 與 Microsoft 也分別依據 Jupyter Notebook 建立 Google Colaboratory 和 Azure Notebook 的雲端解決方案;Jupyter 其中 Ju 指的是 Julia 語言、py 代表 Python 語言而 r 則為 R 語言,這個命名也讓 Jupyter 專案希望海納百川、作為多種程式語言的共同撰寫介面的企圖心一覽無遺。摘要Project Jupyter 由 IPython 專案發跡,目前支援超過 40 種程式語言;本文將簡介如何透過 IPyKernel、IRkernel、IJulia 與 spylon-kernel 將資料科學團隊所鍾愛的 Python 語言、R 語言、Julia 語言與 Scala 語言建置為不同的 Jupyter 運算核心(jupyter kernelspecs),並在相同的筆記本前端頁面進行程式撰寫與觀察程式輸出。以 IPyKernel 建置 Python 2 核心目前 Anaconda 的下載頁面中依然並陳 Python 3.

X 與 Python 2.

X 的版本,讓Python 2 與 Python 3 各自習慣的使用者選擇,但這不代表如果有兩個專案分別是以 Python 2 與 Python 3 寫作,就必須在電腦中安裝兩種版本的 Anaconda 來執行程式碼;依照官方文件的指示,使用者選擇任意版本安裝都無所謂,最佳作法是只要以資源隔絕的虛擬環境管理不同版本即可。You can easily maintain separate environments for Python 2 programs and Python 3 programs on the same computer, without worrying about the programs interacting with each other.

Anaconda Documentation我的電腦安裝搭配 Python 3.

X 的 Anaconda,因此我會建立一個 Python 2.

X 的虛擬環境,在 Anaconda Prompt(Windows 使用者)或者 Terminal(Mac/Linux 使用者)中以 conda 指令建立。創建 Python 2 虛擬環境取名為 python2按下 y 確定繼續進行之後就會開始 Python 2.

X 直譯器與必要模組的下載,完成以後終端機畫面將顯示啟動與停用虛擬環境的指令,值得注意的是 Windows 和 Mac/Linux 使用者啟動與停用的指令有別。終端機畫面將顯示啟動與停用虛擬環境的指令接著我們將啟動虛擬環境 python2,並透過 ipykernel 模組將其新增至 Jupyter Notebook 的核心清單(Kernelspec list)中。啟動 Jupyter Notebook 並且新增以 Python 2 為運算核心的筆記本。新增以 Python 2 為運算核心的筆記本並且以 sys 模組的 version 屬性來驗證這個筆記本確實在使用 Python 2 的運算核心。驗證這個筆記本確實在使用 Python 2 的運算核心以 IRkernel 建置 R 語言核心前往 CRAN(Comprehensive R Archive Network)下載 R 語言並安裝。值得注意的是根據官方文件,Mac 使用者不能在 RStudio 或 R App 執行安裝 IRkernel 套件與連結運算核心的 R 程式,必須改以在 Terminal 啟動 R 語言來執行,這一點與我們平日編寫 R 程式的習慣迥異,Mac 使用者得特別留心!On OS X, be sure to execute this in R started from the Terminal, not the R App!(This is because the R app doesn’t honor $PATH changes in ~/.

bash_profile)IRkernel在終端機輸入 R 啟動 R 語言。在 Terminal 啟動 R 語言透過一個 R 語言套件 IRkernel(Interactive R Kernel)將 R 語言新增至 Jupyter Notebook 的核心清單中。安裝 IRkernel 套件與連結運算核心啟動 Jupyter Notebook 並且新增以 R 為運算核心的筆記本。新增以 R 為運算核心的筆記本並且以 sessionInfo() 函數來驗證這個筆記本確實能執行 R 程式碼。## R version 3.

5.

2 (2018-12-20)## Platform: x86_64-apple-darwin15.

6.

0 (64-bit)## Running under: macOS Mojave 10.

14.

3## ## Matrix products: default## BLAS: /Library/Frameworks/R.

framework/Versions/3.

5/Resources/lib/libRblas.

0.

dylib## LAPACK: /Library/Frameworks/R.

framework/Versions/3.

5/Resources/lib/libRlapack.

dylib## ## locale:## [1] C/UTF-8/C/C/C/C## ## attached base packages:## [1] stats graphics grDevices utils datasets methods base ## ## loaded via a namespace (and not attached):## [1] compiler_3.

5.

2 IRdisplay_0.

7.

0 pbdZMQ_0.

3-3 tools_3.

5.

2 ## [5] htmltools_0.

3.

6 base64enc_0.

1-3 crayon_1.

3.

4 Rcpp_1.

0.

0 ## [9] uuid_0.

1-2 IRkernel_0.

8.

15 jsonlite_1.

6 digest_0.

6.

18 ## [13] repr_0.

19.

2 evaluate_0.

12驗證這個筆記本確實能執行 R 程式碼以 IJulia 建置 Julia 核心前往 julialang.

org 下載 Julia 語言並安裝,安裝完畢以後啟動 Julia。在 Terminal 啟動 Julia透過一個 Julia 語言套件 IJulia(Interactive Julia)將 Julia 語言新增至 Jupyter Notebook 的核心清單中。## julia> using Pkg## ## julia> Pkg.

add("IJulia")## Updating registry at `~/.

julia/registries/General`## Updating git-repo `https://github.

com/JuliaRegistries/General.

git`## Resolving package versions.

## Installed Conda ─────────── v1.

2.

0## Installed SoftGlobalScope ─ v1.

0.

9## Installed ZMQ ───────────── v1.

0.

0## Installed IJulia ────────── v1.

17.

0## Installed Compat ────────── v1.

5.

1## Installed BinaryProvider ── v0.

5.

3## Installed JSON ──────────── v0.

20.

0## Installed MbedTLS ───────── v0.

6.

7## Updating `~/.

julia/environments/v1.

1/Project.

toml`## [7073ff75] + IJulia v1.

17.

0## Updating `~/.

julia/environments/v1.

1/Manifest.

toml`## [b99e7846] + BinaryProvider v0.

5.

3## [34da2185] + Compat v1.

5.

1## [8f4d0f93] + Conda v1.

2.

0## [7073ff75] + IJulia v1.

17.

0## [682c06a0] + JSON v0.

20.

0## [739be429] + MbedTLS v0.

6.

7## [b85f4697] + SoftGlobalScope v1.

0.

9## [81def892] + VersionParsing v1.

1.

3## [c2297ded] + ZMQ v1.

0.

0## [2a0f44e3] + Base64 ## [ade2ca70] + Dates ## [8bb1440f] + DelimitedFiles ## [8ba89e20] + Distributed ## [7b1f6079] + FileWatching ## [b77e0a4c] + InteractiveUtils ## [76f85450] + LibGit2 ## [8f399da3] + Libdl ## [37e2e46d] + LinearAlgebra ## [56ddb016] + Logging ## [d6f4376e] + Markdown ## [a63ad114] + Mmap ## [44cfe95a] + Pkg ## [de0858da] + Printf ## [3fa0cd96] + REPL ## [9a3f8284] + Random ## [ea8e919c] + SHA ## [9e88b42a] + Serialization ## [1a1011a3] + SharedArrays ## [6462fe0b] + Sockets ## [2f01184e] + SparseArrays ## [10745b16] + Statistics ## [8dfed614] + Test ## [cf7118a7] + UUIDs ## [4ec0a83e] + Unicode ## Building Conda ──→ `~/.

julia/packages/Conda/CpuvI/deps/build.

log`## Building ZMQ ────→ `~/.

julia/packages/ZMQ/ABGOx/deps/build.

log`## Building MbedTLS → `~/.

julia/packages/MbedTLS/XkQiX/deps/build.

log`## Building IJulia ─→ `~/.

julia/packages/IJulia/4UizY/deps/build.

log`啟動 Jupyter Notebook 並且新增以 Julia 為運算核心的筆記本。新增以 Julia 為運算核心的筆記本並且以 versioninfo() 函數來驗證這個筆記本確實能執行 Julia 程式碼。## Julia Version 1.

1.

0## Commit 80516ca202 (2019-01-21 21:24 UTC)## Platform Info:## OS: macOS (x86_64-apple-darwin14.

5.

0)## CPU: Intel(R) Core(TM) i5-6267U CPU @ 2.

90GHz## WORD_SIZE: 64## LIBM: libopenlibm## LLVM: libLLVM-6.

0.

1 (ORCJIT, skylake)驗證這個筆記本確實能執行 Julia 程式碼以 spylon-kernel 建置 Scala 核心在 Anaconda Prompt(Windows 使用者)或者 Terminal(Mac/Linux 使用者)中以 conda 指令安裝 spylon-kernel 模組。以 conda 指令安裝 spylon-kernel 模組將 spylon-kernel 新增至 Jupyter Notebook 的核心清單中。## [InstallKernelSpec] Installed kernelspec spylon-kernel in /usr/local/share/jupyter/kernels/spylon-kernel啟動 Jupyter Notebook 並且新增以 spylon-kernel 為運算核心的筆記本。新增以 spylon-kernel 為運算核心的筆記本並且以 util.

Properties.

versionString 屬性來驗證這個筆記本確實能執行 Scala 程式碼。## version 2.

11.

8驗證這個筆記本確實能執行 Scala 程式碼更多可用的 Jupyter KernelsProject Jupyter 目前支援超過 40 種程式語言,更多可用的 Jupyter Kernels 詳見:https://github.

com/jupyter/jupyter/wiki/Jupyter-kernels。小結在這篇文章中我們簡介了 Jupyter Notebook 的使用技巧:建置不同程式語言的核心,包含以 IPyKernel 建置 Python 2 核心、IRkernel 建置 R 語言核心、IJulia 建置 Julia 核心以及使用 spylon-kernel 建置 Scala 核心。如果您喜歡這篇文章,請多按下方的「拍手」圖像幾次、分享到社群網站以及訂閱 Pyradise!追蹤更多 Python 資訊,請關注 Pyradise 的臉書粉絲專頁!????想看影音教學?????我們將在 Pyradise 的 Youtube 頻道,定期跟大家直播分享相關心得!訂閱我們!????????????延伸閱讀ipython/ipykernelIPython Kernel for Jupyter.

Contribute to ipython/ipykernel development by creating an account on GitHub.

github.

comIRkernel/IRkernelR kernel for Jupyter.

Contribute to IRkernel/IRkernel development by creating an account on GitHub.

github.

comJuliaLang/IJulia.

jlJulia kernel for Jupyter.

Contribute to JuliaLang/IJulia.

jl development by creating an account on GitHub.

github.

comValassis-Digital-Media/spylon-kernelJupyter kernel for scala and spark.

Contribute to Valassis-Digital-Media/spylon-kernel development by creating an…github.

comjupyter/jupyterJupyter metapackage for installation, docs and chat – jupyter/jupytergithub.

com.. More details

Leave a Reply