最近,我開始深入 Kotlin 的世界,這是一種吸引了我注意力的現代多功能程式語言。然而,由於有人習慣了 Jupyter 的互動式環境,它允許快速迭代和流暢的程式碼探索,我想知道 Kotlin 是否存在類似的東西。
令我驚訝的是,我發現 Kotlin 有一個 Jupyter 核心。該工具將 Kotlin 的強大和優雅與 Jupyter 的互動性和易用性結合在一起,為學習和實驗語言創建了一個理想的開發環境。
在這篇文章中,我將分享我在 Kotlin 支援下設定 Jupyter 環境的經驗,我甚至會更進一步,創建一個允許您同時使用多種語言的筆記本。
為 Jupyter 安裝 Kotlin 核心相對簡單,特別是如果我們使用 Docker 建立一個受控且可重現的環境。讓我們看看我為此目的創建的 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
此指令:
執行後,您將能夠在瀏覽器中存取 JupyterLab,並且您將看到 Launcher 已經有兩個可用核心:Python 和 Kotlin。
事實上,我們現在可以使用 Kotlin 來建立筆記本!
在深入了解 Kotlin 的過程中,我注意到它與 Python 有一些有趣的相似之處。這讓我想要更詳細地視覺化這些相似之處,從而在兩種語言之間進行直接比較。我想知道是否可以在同一個筆記本上運行 Python 和 Kotlin 程式碼,事實證明這是可能的。
我發現了一個名為 SoS(腳本的腳本)的擴充(和 Jupyter 核心),它允許此功能。我決定將它與 Kotlin 核心一起添加到我的容器中。以下是 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。
現在我們可以在同一個筆記本中運行 Python 和 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"
在使用多語言核心的過程中,執行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中文網其他相關文章!