suchen
HeimBackend-EntwicklungPython-TutorialErstellen eines Notebooks mit Jupyter und Kotlin

Einführung

Vor kurzem habe ich begonnen, in die Welt von Kotlin einzutauchen, einer modernen und vielseitigen Programmiersprache, die meine Aufmerksamkeit erregt hat. Da ich jedoch an die interaktive Umgebung von Jupyter gewöhnt bin, die schnelle Iterationen und eine flüssige Code-Erkundung ermöglicht, habe ich mich gefragt, ob es für Kotlin etwas Ähnliches gibt.

Zu meiner angenehmen Überraschung habe ich entdeckt, dass es einen Jupyter-Kernel für Kotlin gibt. Dieses Tool kombiniert die Leistungsfähigkeit und Eleganz von Kotlin mit der Interaktivität und Benutzerfreundlichkeit von Jupyter und schafft so eine ideale Entwicklungsumgebung zum Erlernen und Experimentieren mit der Sprache.

In diesem Beitrag teile ich meine Erfahrungen beim Einrichten einer Jupyter-Umgebung mit Kotlin-Unterstützung und gehe sogar noch einen Schritt weiter und erstelle ein Notizbuch, mit dem Sie mit mehreren Sprachen gleichzeitig arbeiten können.

Erstellen eines Containers mit Kotlin

Die Installation des Kotlin-Kernels für Jupyter ist relativ einfach, insbesondere wenn wir Docker verwenden, um eine kontrollierte und reproduzierbare Umgebung zu erstellen. Schauen wir uns die Docker-Datei an, die ich zu diesem Zweck erstellt habe – lesen Sie die Kommentare, um jeden Schritt zu verstehen:

Docker-Datei

Wir beginnen mit einem offiziellen Jupyter-Image, das von quay.io heruntergeladen wurde. Wir verwenden eine bestimmte Version, um die Reproduzierbarkeit sicherzustellen und kennzeichnen das Bild zur einfachen Identifizierung als Kotlin-Kernel.

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

Wir installieren OpenJDK 21, das zum Ausführen von Kotlin erforderlich ist. Die Installation erfolgt als Root, um Berechtigungsprobleme zu vermeiden, und dann wechseln wir zum Nicht-Root-Benutzer, um die Sicherheit des Images zu gewährleisten.

USER root

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

USER jovyan

Wir installieren den Kotlin-Kernel für Jupyter, damit wir Kotlin-Code in unserem Notebook ausführen können.

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

Wir erstellen ein Verzeichnis zum Speichern der Notizbücher.

RUN mkdir -p /home/jovyan/notebooks

Schließlich richten wir die Umgebungsvariable NOTEBOOK_ARGS ein, die es uns ermöglicht, das Notizbuch mit den von uns benötigten Optionen zu konfigurieren. In diesem Fall möchten wir nicht, dass sich automatisch ein Browser öffnet, und das Notizbuchverzeichnis soll /home/jovyan/ sein. Notizbücher.

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

Um das Docker-Image zu erstellen, führen wir Folgendes aus:

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

Dieser Befehl erstellt das Docker-Image und markiert es als kotlin-kernel.

Um den Container auszuführen:

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

Dieser Befehl:

  • Führen Sie den Container im interaktiven Modus (-it) aus.
  • Ordnet Port 8888 des Containers Port 8888 des Hosts zu (-p 8888:8888).
  • Fügt das lokale Notebook-Verzeichnis in das Verzeichnis :/home/jovyan/notebooks des Containers ein (-v $(pwd)/notebooks::/home/jovyan/notebooks).

Nach der Ausführung können Sie in Ihrem Browser auf JupyterLab zugreifen und sehen, dass im Launcher bereits zwei Kernel verfügbar sind: Python und Kotlin.

Creando un notebook con Jupyter y Kotlin

Und tatsächlich können wir jetzt Notizbücher mit Kotlin erstellen!

Creando un notebook con Jupyter y Kotlin

Der nächste Schritt in der Interaktivität

Als ich mich eingehender mit Kotlin befasste, fielen mir einige interessante Ähnlichkeiten mit Python auf. Dies brachte mich dazu, diese Ähnlichkeiten detaillierter zu visualisieren und direkte Vergleiche zwischen den beiden Sprachen zu erstellen. Ich habe mich gefragt, ob es möglich wäre, Python- und Kotlin-Code auf demselben Notebook auszuführen, und es stellte sich heraus, dass dies möglich ist.

Ich habe eine Erweiterung (und einen Jupyter-Kernel) namens SoS (Script of Scripts) entdeckt, die diese Funktionalität ermöglicht. Ich habe beschlossen, es mit dem Kotlin-Kernel zu meinem Container hinzuzufügen. Hier sind die Ergänzungen zur Docker-Datei:

Dockerfile-Update

Wir installieren SoS, das es uns ermöglicht, Python- und Kotlin-Code im selben Notebook auszuführen.

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

Mit diesen Ergänzungen können wir jetzt unseren verbesserten Container erstellen und ausführen:

USER root

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

USER jovyan

Wenn Sie jetzt auf JupyterLab zugreifen, werden Ihnen drei verfügbare Kernel angezeigt: Python, Kotlin und SoS.

Creando un notebook con Jupyter y Kotlin

Und jetzt können wir Python- und Kotlin-Code im selben Notebook ausführen:

Creando un notebook con Jupyter y Kotlin

Zusätzliche Anpassung

Um das visuelle Erlebnis zu verbessern und Zellen verschiedener Sprachen leichter unterscheiden zu können, habe ich beschlossen, das Erscheinungsbild der Zellen anzupassen.

Mit Jupyter Notebook können Sie benutzerdefiniertes CSS hinzufügen, wodurch wir je nach Sprache links von jeder Zelle Farbverläufe hinzufügen können.

Hier ist das CSS, das ich verwendet habe:

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

Um diese Anpassung zu implementieren, habe ich das CSS in einer Datei namens „custom.css“ gespeichert und zur Docker-Datei hinzugefügt:

RUN mkdir -p /home/jovyan/notebooks

Darüber hinaus ist es notwendig, im Jupyter-Lab-Befehl anzugeben, dass wir dieses benutzerdefinierte CSS verwenden möchten, indem wir dem Ausführungsbefehl das Flag --custom-css hinzufügen.

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

Creando un notebook con Jupyter y Kotlin

Fehler und wie man sie verbirgt

Bei der Verwendung des mehrsprachigen Kernels tritt gelegentlich ein Fehler auf, wenn eine Kotlin-Zelle ausgeführt wird. Dieser Fehler wird zufällig angezeigt und obwohl ich seinen Ursprung noch nicht identifizieren konnte oder wie ich ihn definitiv beheben kann, habe ich eine vorübergehende Lösung gefunden, um das Benutzererlebnis zu verbessern.

Creando un notebook con Jupyter y Kotlin

Um diesen lästigen Fehler zu verbergen, habe ich mich für die Verwendung von CSS entschieden. Ich habe der oben erwähnten Datei „custom.css“ die folgende Zeile hinzugefügt:

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

Diese CSS-Zeile verbirgt Kotlin-spezifische Fehlermeldungen im Notizbuch. Obwohl es sich nicht um eine ideale Lösung handelt, da es wichtige Fehler verbergen könnte, verbessert es das visuelle Erlebnis bei der Arbeit mit Kotlin-Notebooks erheblich, insbesondere wenn es um diesen wiederkehrenden und scheinbar harmlosen Fehler geht.

Abschluss

In diesem Beitrag haben wir untersucht, wie man mit Jupyter Notebooks eine interaktive Entwicklungsumgebung für Kotlin erstellt.

Wir beginnen mit der grundlegenden Einrichtung eines Docker-Containers mit Kotlin-Unterstützung und gehen dann zu einer anspruchsvolleren Umgebung über, die die Codeausführung in mehreren Sprachen innerhalb desselben Notebooks ermöglicht.

Darüber hinaus haben wir gesehen, wie wir das Erscheinungsbild unserer Notizbücher anpassen können, um das visuelle Erlebnis und die Lesbarkeit zu verbessern, und wie wir einige häufige Fehler, die bei der Verwendung dieser Notizbücher auftreten können, „ausblenden“ können.

Dies erleichtert nicht nur das Erlernen von Kotlin, sondern ermöglicht auch direkte Vergleiche mit anderen Sprachen wie Python, was für Entwickler, die auf Kotlin umsteigen oder regelmäßig mit mehreren Programmiersprachen arbeiten, äußerst nützlich sein kann

Zusätzliche Ressourcen

Für diejenigen, die daran interessiert sind, diese Umgebung weiter zu erkunden oder zu replizieren, habe ich den gesamten in diesem Projekt verwendeten Code in meinem GitHub-Repository verfügbar gemacht.

Ich hoffe, dieser Leitfaden wird Ihnen bei Ihrer Lernreise mit Kotlin und Jupyter nützlich sein.

Das obige ist der detaillierte Inhalt vonErstellen eines Notebooks mit Jupyter und Kotlin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Was sind einige häufige Gründe, warum ein Python -Skript möglicherweise nicht auf Unix ausgeführt wird?Was sind einige häufige Gründe, warum ein Python -Skript möglicherweise nicht auf Unix ausgeführt wird?Apr 28, 2025 am 12:18 AM

Die Gründe, warum Python -Skripte auf UNIX -Systemen nicht ausgeführt werden können, sind: 1) unzureichende Berechtigungen unter Verwendung von chmod xyour_script.py zur Erteilung von Ausführungsberechtigungen; 2) Falsche oder fehlende Shebang -Linie, Sie sollten #!/Usr/bin/envpython verwenden; 3) In falsche Einstellungen für die Umgebungsvariablen können Sie os.Environ -Debugging drucken. 4) Mit der falschen Python -Version können Sie die Version in der Shebang -Zeile oder der Befehlszeile angeben. 5) Abhängigkeitsprobleme unter Verwendung der virtuellen Umgebung, um Abhängigkeiten zu isolieren; 6) Syntaxfehler, verwenden Sie Python-Mpy_CompileYour_Script.py, um zu erkennen.

Geben Sie ein Beispiel für ein Szenario an, in dem die Verwendung eines Python -Arrays angemessener wäre als die Verwendung einer Liste.Geben Sie ein Beispiel für ein Szenario an, in dem die Verwendung eines Python -Arrays angemessener wäre als die Verwendung einer Liste.Apr 28, 2025 am 12:15 AM

Die Verwendung von Python -Arrays eignet sich besser für die Verarbeitung großer Mengen von numerischen Daten als für Listen. 1) Arrays speichern mehr Speicher, 2) Arrays sind schneller nach numerischen Werten, 3) Konsistenz vom Arrays Kraftstyp, 4) Arrays sind mit C -Arrays kompatibel, sind jedoch nicht so flexibel und bequem wie Listen.

Was sind die Auswirkungen der Leistung bei der Verwendung von Listen im Vergleich zu Arrays in Python?Was sind die Auswirkungen der Leistung bei der Verwendung von Listen im Vergleich zu Arrays in Python?Apr 28, 2025 am 12:10 AM

Listen besser voreflexibilität undmixdatatatypen, während Datensätze der überlegenen sumerischen Berechnungen sandlastete

Wie handelt es sich bei Numpy um die Speicherverwaltung für große Arrays?Wie handelt es sich bei Numpy um die Speicherverwaltung für große Arrays?Apr 28, 2025 am 12:07 AM

NumpymanageMemoryforlargearrayseffictionlyusingViews, Kopien und Memory-Made.1) ViewsAllowsLicing Mit Outcopying, direktModifizierende Theoriginalarray.2) CopieScanbecreated withthecopy () methodeChoperingdata.3) Memory-Maddscanbeed-medellessive-made-mapedFileshandleshandLessive-massessive-massessiva

Was erfordert das Importieren eines Moduls: Listen oder Arrays?Was erfordert das Importieren eines Moduls: Listen oder Arrays?Apr 28, 2025 am 12:06 AM

ListsinpythondonotRequireMportingamodule, whilearRays aus der FROMTHEARRAYMODULEDONEDANIMIMPORT.1) listet zur Verfügung gestellt.

Welche Datentypen können in einem Python -Array gespeichert werden?Welche Datentypen können in einem Python -Array gespeichert werden?Apr 27, 2025 am 12:11 AM

PythonlistscanstoreanyDatatype, ArrayModulearraysStoreOnetype und NumpyarraysarefornumericalComputations.1) listet dieArversatile-memory-effizient.2) Arraymodulenarraysalememory-effizientforhomogeneData.3) Numpharraysareoptional-EffictionhomogenInData.3) nummodulenarraysoptionalinformanceIntata.3) nummodulearraysoptionalinformanceIntata.3) NumpharraysareoPresopplowancalinScesDataa.3) NumpharraysoePerformance

Was passiert, wenn Sie versuchen, einen Wert des falschen Datentyps in einem Python -Array zu speichern?Was passiert, wenn Sie versuchen, einen Wert des falschen Datentyps in einem Python -Array zu speichern?Apr 27, 2025 am 12:10 AM

Wenn SietostoreavalueOfThewrongdatatypeinapythonarray, touencounteratypeerror.Thissisdustuetothearraymodules -SstrictTypeNeen -Forcortion, welche

Welches ist Teil der Python Standard Library: Listen oder Arrays?Welches ist Teil der Python Standard Library: Listen oder Arrays?Apr 27, 2025 am 12:03 AM

PythonlistsarePartThestandardlibrary, whilearraysarenot.listarebuilt-in, vielseitig und UNDUSEDFORSPORINGECollections, während dieArrayRay-thearrayModulei und loses und loses und losesaluseduetolimitedFunctionality.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.