Spec-Zone.ru › Deno 2

Ядро Jupyter для Deno

Deno поставляется со встроенным ядром Jupyter, которое позволяет писать на JavaScript и TypeScript, использовать веб-API и API Deno, а также импортировать пакеты npm прямо в интерактивные блокноты.

deno jupyter всегда запускается с --allow-all

В настоящее время весь код, выполняемый в ядре Jupyter, запускается с флагом --allow-all. Это временное ограничение, которое будет устранено в будущем.

Быстрый старт

Запустите deno jupyter и следуйте инструкциям.

Чтобы принудительно установить ядро, можно запустить deno jupyter --install. Deno предполагает, что команда jupyter доступна в вашем PATH.

После завершения установки ядро Deno будет доступно в диалоге создания блокнота в JupyterLab и классическом блокноте:

Jupyter notebook kernel selection

Ядро Deno Jupyter можно использовать в любом редакторе, поддерживающем блокноты Jupyter.

VS Code

  • Установите расширение Jupyter для VS Code
  • Откройте или создайте файл блокнота: откройте палитру команд (Ctrl+Shift+P) и выберите «Создать: новый блокнот Jupyter». Также можно вручную создать файл с расширением «.ipynb».
  • Открыв новый или существующий блокнот, нажмите кнопку создания нового блокнота Jupyter, выберите «Ядра Jupyter», а затем Deno

Selecting Deno in VS Code

Среды разработки JetBrains

Блокноты Jupyter доступны сразу после установки.

Вывод форматированного содержимого

Пространства имён Deno.jupyter предоставляют вспомогательные функции для отображения форматированного содержимого в блокнотах с помощью поддерживаемых Jupyter типов MIME.


Проще всего вывести форматированное содержимое, вернув объект с методом [Symbol.for("Jupyter.display")].

Этот метод должен возвращать словарь, сопоставляющий тип MIME со значением, которое нужно отобразить.

{
  [Symbol.for("Jupyter.display")]() {
    return {
      // Plain text content
      "text/plain": "Hello world!",

      // HTML output
      "text/html": "<h1>Hello world!</h1>",
    }
  }
}

Пример объекта, возвращающего обычный текст и вывод в формате HTML.

Информация

Вместо ввода Symbol.for("Jupyter.display") можно также использовать Deno.jupyter.$display

Это обычная функция, поэтому для форматирования вывода можно использовать любую библиотеку — например, @std/fmt/colors, чтобы добавить цвет:

import * as colors from "jsr:@std/fmt/colors";

{
  [Deno.jupyter.$display]() {
    return {
      "text/plain": colors.green("Hello world"),
    }
  }
}

Также можно использовать функцию Deno.jupyter.display, чтобы напрямую отобразить набор MIME:

await Deno.jupyter.display({
  "text/plain": "Hello, world!",
  "text/html": "<h1>Hello, world!</h1>",
  "text/markdown": "# Hello, world!",
}, { raw: true });

 API example

Интерфейс блокнота автоматически выберет для отображения «самый насыщенный» тип MIME с учётом своих возможностей.


Deno.jupyter предоставляет несколько вспомогательных методов для вывода распространённых типов мультимедиа в форматированном виде.

Deno.jupyter.html — это шаблонный тег, который отображает переданную строку в виде HTML в блокноте.

Deno.jupyter.html`<h1>Hello, world!</h1>
<h2>From Deno kernel</h2>
<p>Lorem ipsum <i>dolor</i> <b>sit</b> <u>amet</u></p>`;

 API example

Deno.jupyter.md — это шаблонный тег, который отображает переданную строку в виде документа Markdown в блокноте.

Deno.jupyter
  .md`# Notebooks in TypeScript via Deno ![Deno logo](https://github.com/denoland.png?size=32)

**Interactive compute with Jupyter _built into Deno_!**`;

 API example

Deno.jupyter.svg — это шаблонный тег, который отображает переданную строку в виде изображения SVG в блокноте.

Deno.jupyter.svg`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
      <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
    </svg>`;

 API example

Deno.jupyter.image — это функция, отображающая изображение в формате JPG или PNG. Можно передать путь к файлу или уже прочитанные байты:

Deno.jupyter.image("./cat.jpg");

const data = Deno.readFileSync("./dog.png");
Deno.jupyter.image(data);

API prompt и confirm

В блокноте можно использовать веб-API prompt и confirm, чтобы дождаться ввода пользователя.

Пример использования API confirm и prompt

Публикация сообщений в канале IO pub

Deno.jupyter.broadcast позволяет публиковать сообщения в канале IO pub и выводить обновления в реальном времени во время выполнения ячейки.

Рассмотрим пример, в котором перед началом вычислений выводится одно сообщение, а после их завершения — другое:

await Deno.jupyter.broadcast("display_data", {
  data: { "text/html": "<b>Processing...</b>" },
  metadata: {},
  transient: { display_id: "progress" },
});

// Pretend we're doing an expensive compute
await new Promise((resolve) => setTimeout(resolve, 1500));

await Deno.jupyter.broadcast("update_display_data", {
  data: { "text/html": "<b>Done</b>" },
  metadata: {},
  transient: { display_id: "progress" },
});
Пример использования API Deno.jupyter.broadcast

Примеры

Вот пример использования @observablehq/plot для создания диаграммы:

import { document, penguins } from "jsr:@ry/jupyter-helper";
import * as Plot from "npm:@observablehq/plot";

let p = await penguins();

Plot.plot({
  marks: [
    Plot.dot(p.toRecords(), {
      x: "culmen_depth_mm",
      y: "culmen_length_mm",
      fill: "species",
    }),
  ],
  document,
});

Example plot generated using  library

Более сложные примеры с использованием библиотек для анализа и визуализации данных, таких как Polars, Observable и d3, см. на странице https://github.com/rgbkrk/denotebooks.

Интеграция с jupyter console

Ядро Deno Jupyter также можно использовать в REPL jupyter console. Для этого запустите консоль с параметром jupyter console --kernel deno.

Using the Deno kernel in a CLI

Последнее обновление: 5 ноября 2025 г.

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/jupyter

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API