cari
Rumahpembangunan bahagian belakangTutorial PythonMencipta buku nota dengan Jupyter dan Kotlin

pengenalan

Baru-baru ini, saya mula menyelami dunia Kotlin, bahasa pengaturcaraan moden dan serba boleh yang telah menarik perhatian saya. Walau bagaimanapun, kerana seseorang biasa dengan persekitaran interaktif Jupyter, yang membolehkan lelaran pantas dan penerokaan kod bendalir, saya tertanya-tanya sama ada sesuatu yang serupa wujud untuk Kotlin.

Mengejutkan saya, saya mendapati terdapat kernel Jupyter untuk Kotlin. Alat ini menggabungkan kuasa dan keanggunan Kotlin dengan interaktiviti dan kemudahan penggunaan Jupyter, mewujudkan persekitaran pembangunan yang ideal untuk belajar dan bereksperimen dengan bahasa.

Dalam siaran ini, saya akan berkongsi pengalaman saya menyediakan persekitaran Jupyter dengan sokongan Kotlin, malah saya akan melangkah lebih jauh, mencipta buku nota yang membolehkan anda bekerja dengan berbilang bahasa secara serentak.

Mencipta bekas dengan Kotlin

Memasang kernel Kotlin untuk Jupyter agak mudah, terutamanya jika kami menggunakan Docker untuk mencipta persekitaran terkawal dan boleh dihasilkan semula. Mari lihat Dockerfile yang saya buat untuk tujuan ini – semak komen untuk memahami setiap langkah:

Dockerfile

Kami bermula dengan imej Jupyter rasmi yang dimuat turun dari quay.io. Kami menggunakan versi tertentu untuk memastikan kebolehulangan dan melabelkan imej sebagai kotlin-kernel untuk pengecaman mudah.

FROM quay.io/jupyter/base-notebook:2024-12-31 AS kotlin-kernel

Kami memasang OpenJDK 21, perlu untuk menjalankan Kotlin, pemasangan dilakukan sebagai root untuk mengelakkan masalah kebenaran dan kemudian kami beralih kepada pengguna bukan root untuk memastikan keselamatan imej.

USER root

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

USER jovyan

Kami memasang kernel Kotlin untuk Jupyter, ini akan membolehkan kami menjalankan kod Kotlin dalam buku nota kami.

RUN pip install --user \
    kotlin-jupyter-kernel==0.12.0.322

Kami mencipta direktori untuk menyimpan buku nota.

RUN mkdir -p /home/jovyan/notebooks

Akhir sekali, kami mewujudkan pembolehubah persekitaran NOTEBOOK_ARGS yang membolehkan kami mengkonfigurasi buku nota dengan pilihan yang kami perlukan, dalam kes ini, kami tidak mahu penyemak imbas dibuka secara automatik dan kami mahu direktori buku nota menjadi /home/jovyan/ buku nota.

ENV NOTEBOOK_ARGS="--no-browser --notebook-dir=/home/jovyan/notebooks"

Untuk membina imej Docker, kami menjalankan:

docker build --target kotlin-kernel -t kotlin-kernel .

Arahan ini membina imej Docker dan menandainya sebagai kotlin-kernel.

Untuk menjalankan bekas:

docker run \
    -it \
    -p 8888:8888 \
    -v $(pwd)/notebooks:/home/jovyan/notebooks \
    kotlin-kernel

Arahan ini:

  • Jalankan bekas dalam mod interaktif (-it).
  • Memetakan port 8888 bekas ke port 8888 hos (-p 8888:8888).
  • Memasang direktori buku nota tempatan ke dalam direktori :/home/jovyan/buku nota bekas (-v $(pwd)/buku nota::/home/jovyan/buku nota).

Setelah dilaksanakan, anda akan dapat mengakses JupyterLab dalam penyemak imbas anda dan anda akan melihat bahawa Pelancar sudah mempunyai dua kernel yang tersedia: Python dan Kotlin.

Creando un notebook con Jupyter y Kotlin

Dan sebenarnya, kami kini boleh mencipta buku nota dengan Kotlin!

Creando un notebook con Jupyter y Kotlin

Langkah seterusnya dalam interaktiviti

Semasa mendalami Kotlin, saya melihat beberapa persamaan menarik dengan Python. Ini menyebabkan saya ingin memvisualisasikan persamaan ini dengan lebih terperinci, mewujudkan perbandingan langsung antara kedua-dua bahasa. Saya tertanya-tanya sama ada mungkin untuk menjalankan kod Python dan Kotlin pada buku nota yang sama, dan ternyata ia boleh dilakukan.

Saya menemui sambungan (dan kernel Jupyter) yang dipanggil SoS (Skrip Skrip) yang membenarkan fungsi ini. Saya memutuskan untuk menambahkannya pada bekas saya dengan kernel Kotlin. Berikut ialah penambahan pada Dockerfile:

Kemas kini fail Docker

Kami memasang SoS, yang akan membolehkan kami menjalankan kod Python dan Kotlin dalam buku nota yang sama.

FROM quay.io/jupyter/base-notebook:2024-12-31 AS kotlin-kernel

Dengan tambahan ini, kami kini boleh membina dan menjalankan bekas kami yang dipertingkatkan:

USER root

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

USER jovyan

Apabila anda mengakses JupyterLab sekarang, anda akan melihat tiga kernel tersedia: Python, Kotlin dan SoS.

Creando un notebook con Jupyter y Kotlin

Dan kini kita boleh menjalankan kod Python dan Kotlin dalam buku nota yang sama:

Creando un notebook con Jupyter y Kotlin

Penyesuaian tambahan

Untuk meningkatkan pengalaman visual dan mudah membezakan antara sel bahasa yang berbeza, saya memutuskan untuk menyesuaikan penampilan sel.

Buku Nota Jupyter membolehkan anda menambah CSS tersuai, yang membolehkan kami menambah kecerunan di sebelah kiri setiap sel, bergantung pada bahasa.

Berikut ialah CSS yang saya gunakan:

RUN pip install --user \
    kotlin-jupyter-kernel==0.12.0.322

Untuk melaksanakan penyesuaian ini, saya menyimpan CSS dalam fail bernama custom.css dan menambahkannya pada Dockerfile:

RUN mkdir -p /home/jovyan/notebooks

Selain itu, adalah perlu untuk menentukan kepada perintah makmal jupyter bahawa kita mahu menggunakan CSS tersuai ini, menambah bendera --custom-css pada arahan pelaksanaan.

ENV NOTEBOOK_ARGS="--no-browser --notebook-dir=/home/jovyan/notebooks"

Creando un notebook con Jupyter y Kotlin

Ralat dan cara menyembunyikannya

Semasa menggunakan kernel berbilang bahasa, ralat sekali-sekala muncul semasa menjalankan sel Kotlin. Ralat ini dipaparkan secara rawak dan, walaupun saya masih belum dapat mengenal pasti asal usulnya atau cara menyelesaikannya secara muktamad, saya telah menemui penyelesaian sementara untuk meningkatkan pengalaman pengguna.

Creando un notebook con Jupyter y Kotlin

Untuk menyembunyikan ralat yang menjengkelkan ini, saya memutuskan untuk menggunakan CSS. Saya menambah baris berikut pada fail custom.css yang disebutkan di atas:

FROM quay.io/jupyter/base-notebook:2024-12-31 AS kotlin-kernel

Barisan CSS ini menyembunyikan mesej ralat khusus Kotlin dalam buku nota. Walaupun ia bukan penyelesaian yang ideal kerana ia boleh menyembunyikan ralat penting, ia meningkatkan pengalaman visual dengan ketara apabila bekerja dengan buku nota Kotlin, terutamanya apabila menangani ralat yang berulang dan kelihatan tidak berbahaya ini.

Kesimpulan

Dalam siaran ini, kami telah meneroka cara mencipta persekitaran pembangunan interaktif untuk Kotlin menggunakan Buku Nota Jupyter.

Kami bermula dengan persediaan asas bekas Docker dengan sokongan Kotlin, kemudian bergerak ke arah persekitaran yang lebih canggih yang membolehkan pelaksanaan kod dalam berbilang bahasa dalam buku nota yang sama.

Selain itu, kami telah melihat cara menyesuaikan penampilan buku nota kami untuk meningkatkan pengalaman visual dan kebolehbacaan, dan cara "menyembunyikan" beberapa ralat biasa yang mungkin timbul semasa menggunakan buku nota ini.

Ini bukan sahaja memudahkan pembelajaran Kotlin, tetapi juga membolehkan perbandingan langsung dengan bahasa lain seperti Python, yang boleh menjadi sangat berguna untuk pembangun yang beralih kepada Kotlin atau yang kerap menggunakan pelbagai bahasa pengaturcaraan

Sumber tambahan

Bagi mereka yang berminat untuk meneroka lebih lanjut atau mereplikasi persekitaran ini, saya telah menyediakan semua kod yang digunakan dalam projek ini dalam repositori GitHub saya.

Saya harap panduan ini berguna kepada anda dalam perjalanan pembelajaran anda dengan Kotlin dan Jupyter.

Atas ialah kandungan terperinci Mencipta buku nota dengan Jupyter dan Kotlin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apakah beberapa operasi biasa yang boleh dilakukan pada tatasusunan python?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousoperations: 1) SlicingExtractsSubsets, 2) Menambah/ExtendingAddSelements, 3) InsertingPlaceSelementSatSatSatSpecifics, 4) RemovingDeleteselements, 5) Sorting/ReversingChangesOrder,

Dalam jenis aplikasi yang biasa digunakan oleh numpy?Dalam jenis aplikasi yang biasa digunakan oleh numpy?Apr 26, 2025 am 12:13 AM

NumpyarraysareessentialforapplicationRequiringeficientnumericalcomputationsanddatamanipulation.theyarecrucialindaSascience, machinelearning, fizik, kejuruteraan, danfinanceduetotheirabilitytOHandlelarge-Scaledataefisien.Forexample, infinancialanal

Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Bilakah anda memilih untuk menggunakan array di atas senarai di Python?Apr 26, 2025 am 12:12 AM

UseanArray.arrayoveralistinpythonwhendealingwithhomogeneousdata, criticalcode prestasi, orinterfacingwithccode.1) homogeneousdata: arrayssavemememorywithtypedelements.2)

Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Adakah semua operasi senarai disokong oleh tatasusunan, dan sebaliknya? Mengapa atau mengapa tidak?Apr 26, 2025 am 12:05 AM

Tidak, notalllistoperationsaresuportedByArrays, andviceversa.1) arraysdonotsupportdynamicoperationslikeappendorinsertwithoutresizing, whyimpactsperformance.2) listsdonotguaranteeconstantTimeComplexityFordirectacesscesscesscesscesscesscesscesscesscesessd.

Bagaimana anda mengakses elemen dalam senarai python?Bagaimana anda mengakses elemen dalam senarai python?Apr 26, 2025 am 12:03 AM

ToaccesselementsinaPythonlist,useindexing,negativeindexing,slicing,oriteration.1)Indexingstartsat0.2)Negativeindexingaccessesfromtheend.3)Slicingextractsportions.4)Iterationusesforloopsorenumerate.AlwayschecklistlengthtoavoidIndexError.

Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Bagaimana tatasusunan digunakan dalam pengkomputeran saintifik dengan python?Apr 25, 2025 am 12:28 AM

Arraysinpython, terutamanya yang, arecrucialinscientificificputingputingfortheirefficiencyandversatility.1) mereka yang digunakan untuk

Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Bagaimana anda mengendalikan versi python yang berbeza pada sistem yang sama?Apr 25, 2025 am 12:24 AM

Anda boleh menguruskan versi python yang berbeza dengan menggunakan Pyenv, Venv dan Anaconda. 1) Gunakan pyenv untuk menguruskan pelbagai versi python: Pasang pyenv, tetapkan versi global dan tempatan. 2) Gunakan VENV untuk mewujudkan persekitaran maya untuk mengasingkan kebergantungan projek. 3) Gunakan Anaconda untuk menguruskan versi python dalam projek sains data anda. 4) Simpan sistem python untuk tugas peringkat sistem. Melalui alat dan strategi ini, anda dapat menguruskan versi Python yang berbeza untuk memastikan projek yang lancar.

Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apakah beberapa kelebihan menggunakan array numpy melalui array python standard?Apr 25, 2025 am 12:21 AM

Numpyarrayshaveseveraladvantagesoverstanderardpythonarrays: 1) thearemuchfasterduetoc-assedimplementation, 2) thearemorememory-efficient, antyedlargedataSets, and3) theyofferoptimized, vectorizedfuncionsformathhematicalicalicalicialisation

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.