首頁 > 後端開發 > Python教學 > 使用 Jupyter 和 Kotlin 建立筆記本

使用 Jupyter 和 Kotlin 建立筆記本

Linda Hamilton
發布: 2025-01-07 06:25:43
原創
484 人瀏覽過

介紹

最近,我開始深入 Kotlin 的世界,這是一種吸引了我注意力的現代多功能程式語言。然而,由於有人習慣了 Jupyter 的互動式環境,它允許快速迭代和流暢的程式碼探索,我想知道 Kotlin 是否存在類似的東西。

令我驚訝的是,我發現 Kotlin 有一個 Jupyter 核心。該工具將 Kotlin 的強大和優雅與 Jupyter 的互動性和易用性結合在一起,為學習和實驗語言創建了一個理想的開發環境。

在這篇文章中,我將分享我在 Kotlin 支援下設定 Jupyter 環境的經驗,我甚至會更進一步,創建一個允許您同時使用多種語言的筆記本。

使用 Kotlin 建立容器

為 Jupyter 安裝 Kotlin 核心相對簡單,特別是如果我們使用 Docker 建立一個受控且可重現的環境。讓我們看看我為此目的創建的 Dockerfile – 檢查註釋以了解每個步驟:

Dockerfile

我們從 quay.io 下載的官方 Jupyter 鏡像開始。我們使用特定版本來確保可重複性,並將圖像標記為 kotlin-kernel 以便於識別。

FROM quay.io/jupyter/base-notebook:2024-12-31 AS kotlin-kernel
登入後複製
登入後複製
登入後複製

我們安裝執行 Kotlin 所必需的 OpenJDK 21,以 root 身分安裝以避免權限問題,然後切換到非 root 使用者以確保鏡像的安全。

USER root

RUN apt-get update && apt-get -y install openjdk-21-jdk

USER jovyan
登入後複製
登入後複製

我們為 Jupyter 安裝 Kotlin 內核,這將允許我們在筆記本中運行 Kotlin 程式碼。

RUN pip install --user \
    kotlin-jupyter-kernel==0.12.0.322
登入後複製
登入後複製

我們建立一個目錄來儲存筆記本。

RUN mkdir -p /home/jovyan/notebooks
登入後複製
登入後複製

最後,我們建立NOTEBOOK_ARGS環境變量,允許我們使用所需的選項配置筆記本,在這種情況下,我們不希望瀏覽器自動打開,我們希望筆記本目錄為/home/jovyan/筆記本

ENV NOTEBOOK_ARGS="--no-browser --notebook-dir=/home/jovyan/notebooks"
登入後複製
登入後複製

要建立 Docker 映像,我們運行:

docker build --target kotlin-kernel -t kotlin-kernel .
登入後複製

此命令建置 Docker 映像並將其標記為 kotlin-kernel。

運行容器:

docker run \
    -it \
    -p 8888:8888 \
    -v $(pwd)/notebooks:/home/jovyan/notebooks \
    kotlin-kernel
登入後複製

此指令:

  • 以互動模式運作容器 (-it)。
  • 將容器的連接埠 8888 對應到主機的連接埠 8888 (-p 8888:8888)。
  • 將本機notebooks目錄掛載到容器的:/home/jovyan/notebooks目錄中(-v $(pwd)/notebooks::/home/jovyan/notebooks)。

執行後,您將能夠在瀏覽器中存取 JupyterLab,並且您將看到 Launcher 已經有兩個可用核心:Python 和 Kotlin。

Creando un notebook con Jupyter y Kotlin

事實上,我們現在可以使用 Kotlin 來建立筆記本!

Creando un notebook con Jupyter y Kotlin

互動的下一步

在深入了解 Kotlin 的過程中,我注意到它與 Python 有一些有趣的相似之處。這讓我想要更詳細地視覺化這些相似之處,從而在兩種語言之間進行直接比較。我想知道是否可以在同一個筆記本上運行 Python 和 Kotlin 程式碼,事實證明這是可能的。

我發現了一個名為 SoS(腳本的腳本)的擴充(和 Jupyter 核心),它允許此功能。我決定將它與 Kotlin 核心一起添加到我的容器中。以下是 Dockerfile 的新增內容:

Dockerfile 更新

我們安裝 SoS,這將允許我們在同一個筆記本中運行 Python 和 Kotlin 程式碼。

FROM quay.io/jupyter/base-notebook:2024-12-31 AS kotlin-kernel
登入後複製
登入後複製
登入後複製

透過這些添加,我們現在可以建造並運行改進的容器:

USER root

RUN apt-get update && apt-get -y install openjdk-21-jdk

USER jovyan
登入後複製
登入後複製

現在造訪 JupyterLab 時,您將看到三個可用核心:Python、Kotlin 和 SoS。

Creando un notebook con Jupyter y Kotlin

現在我們可以在同一個筆記本中運行 Python 和 Kotlin 程式碼:

Creando un notebook con Jupyter y Kotlin

額外客製化

為了改善視覺體驗並輕鬆區分不同語言的單元格,我決定自訂單元格的外觀。

Jupyter Notebook 可讓您新增自訂 CSS,這使我們可以根據語言在每個單元格的左側添加漸層。

這是我使用的CSS:

RUN pip install --user \
    kotlin-jupyter-kernel==0.12.0.322
登入後複製
登入後複製

為了實現此自定義,我將 CSS 保存在名為 custom.css 的檔案中,並將其新增至 Dockerfile:

RUN mkdir -p /home/jovyan/notebooks
登入後複製
登入後複製

此外,需要向 jupyter lab 指令指定我們要使用此自訂 CSS,並在執行指令中加入 --custom-css 標誌。

ENV NOTEBOOK_ARGS="--no-browser --notebook-dir=/home/jovyan/notebooks"
登入後複製
登入後複製

Creando un notebook con Jupyter y Kotlin

錯誤以及如何隱藏它們

在使用多語言核心的過程中,執行Kotlin單元時偶爾會出現錯誤。這個錯誤是隨機顯示的,雖然我還無法確定其根源或如何最終解決它,但我已經找到了一個臨時解決方案來改善用戶體驗。

Creando un notebook con Jupyter y Kotlin

為了隱藏這個惱人的錯誤,我決定使用 CSS。我將以下行加入上面提到的 custom.css 檔案:

FROM quay.io/jupyter/base-notebook:2024-12-31 AS kotlin-kernel
登入後複製
登入後複製
登入後複製

這行 CSS 隱藏了筆記本中 Kotlin 特定的錯誤訊息。儘管它不是一個理想的解決方案,因為它可能隱藏重要的錯誤,但它顯著改善了使用 Kotlin 筆記本時的視覺體驗,特別是在處理這種重複出現且看似無害的錯誤時。

結論

在這篇文章中,我們探討如何使用 Jupyter Notebooks 為 Kotlin 建立互動式開發環境。

我們從支援 Kotlin 的 Docker 容器的基本設定開始,然後轉向更複雜的環境,允許在同一筆記本中以多種語言執行程式碼。

此外,我們還了解如何自訂筆記本的外觀以提高視覺體驗和可讀性,以及如何「隱藏」使用這些筆記本時可能出現的一些常見錯誤。

這不僅使學習 Kotlin 變得更加容易,而且還可以與 Python 等其他語言進行直接比較,這對於正在過渡到 Kotlin 或經常使用多種程式語言的開發人員來說非常有用

其他資源

對於有興趣進一步探索或複製此環境的人,我已在我的 GitHub 儲存庫中提供了此專案中使用的所有程式碼。

我希望本指南對您的 Kotlin 和 Jupyter 學習之旅有所幫助。

以上是使用 Jupyter 和 Kotlin 建立筆記本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板