在 Jupyter Notebook 中使用更多语言

在 Jupyter Notebook 中使用更多语言

使用过 Jupyter Notebook 的开发者想必都十分熟悉这种基于 Web 的交互式计算环境,并且喜爱这种可以同时包含代码、文本、公式、图表和富媒体的文件格式吧!Jupyter Notebook 中最流行的程序语言是 Python,但是这不代表其他语言不能在 Jupyter Notebook 中运行,毕竟,这么好的格式怎么能让 Python 独占呢!事实上,只要能安装运行相应的核(Kernel),那么对应语言的代码就能在 Jupyter Notebook 中运行。你可以在这里找到第三方核和它们支持的语言的完整列表,或者在文末查看。

本文主要介绍 R 和 MATLAB 核的安装与使用。

R

在安装任何 R 内核之前,请确保你已经安装了 Jupyter Notebook 和 R,在虚拟环境里安装的请确保在同一虚拟环境里进行后续操作,否则相关程序可能无法正常运行。下面给出了在一台全新的机器上安装内核的步骤,读者若已经部分安装了相关程序可以按需阅读。

安装 Python

在全局 Python 环境下安装

123brew install pythonexport PATH=$PATH:$(brew --prefix python)/libexec/binpip install notebook

在虚拟 Python 环境下安装

12345brew install miniforgeconda init "$(basename "${SHELL}")"conda create -n kernel pythonconda activate kernelpip install notebook

安装 R 和 R 内核

1brew install r

安装完毕后,进入 R 环境,安装 IRkernel。

1R

注意启动 R 需要大写,小写的 r 是 shell 内置命令,表示运行上一条命令。

12> install.packages('IRkernel')> IRkernel::installspec()

第一条命令会下载并编译很多包,因此过程可能比较缓慢,耐心等待即可。网络上有些教程可能会用 IRkernel::installspec(user = FALSE) 代替上述第二条命令,不过在我的机器上提示权限不够,个人感觉并不会影响使用。

安装完毕后,就可以在 Jupyter Notebook 中找到 R 的核了。

MATLAB

MATLAB 需要 Python 与之通信,因此机器上除了完整的 MATLAB 以外,还需要安装 Python。截止 R2023a,MATLAB 仍不支持 Python 3.11,所以我们建立一个 Python 3.10 的虚拟环境。这里我们使用 conda 管理虚拟环境,如果读者有其他等效方法也可使用。

1conda create -n matlab python=3.10

建立好虚拟环境后,我们激活并安装 MATLAB Engine for Python(由 MathWorks 提供)和 MATLAB Kernel。

1234conda activate matlabcd /Applications/MATLAB_R2023a.app/extern/engines/pythonpip install .pip install matlab_kernel

安装完毕后,就可以在 Jupyter Notebook 中找到 MATLAB 的核了。

Jupyter Kernels

以下是一份完整的 Jupyter 内核和支持语言的列表。相应的使用方法点击链接即可访问。

Name

Jupyter/IPython Version

Language(s) Version

3rd party dependencies

Example Notebooks

Notes

GoNB

Jupyter >= 5

Go >= 1.19

Tutorial

Micronaut

Python>=3.7.5, Groovy>3

Micronaut

https://github.com/stainlessai/micronaut-jupyter/blob/master/examples/basic-service/notebooks/use-library.ipynb

Compatible with BeakerX

Agda kernel

2.6.0

https://mybinder.org/v2/gh/lclem/agda-kernel/master?filepath=example/LabImp.ipynb

Dyalog Jupyter Kernel

APL (Dyalog)

Dyalog >= 15.0

Notebooks

Can also be run on TryAPL’s Learn tab

Coarray-Fortran

Jupyter 4.0

Fortran 2008/2015

GFortran >= 7.1, OpenCoarrays, MPICH >= 3.2

Demo, Binder demo

Docker image

LFortran

Binder demo

Main repository at GitLab

Ansible Jupyter Kernel

Jupyter 5.6.0.dev0

Ansible 2.x

Hello World

sparkmagic

Jupyter >=4.0

Pyspark (Python 2 & 3), Spark (Scala), SparkR ®

Livy

Notebooks, Docker Images

This kernels are implemented via the magics machinery of the ipython kernel to use Spark via Livy

sas_kernel

Jupyter 4.0

python >= 3.3

SAS 9.4 or higher

IPyKernel

Jupyter 4.0

python 2.7, >= 3.3

pyzmq

IJulia

julia >= 0.3

IHaskell

ghc >= 7.6

Demo

IRuby

ruby >= 2.3

tslab

Typescript 3.7.2, JavaScript ESNext

Node.js

Example notebooks

Jupyter kernel for JavaScript and TypeScript - npm

IJavascript

nodejs >= 0.10

ITypeScript

Typescript >= 2.0

Node.js >= 0.10.0

jpCoffeescript

coffeescript >= 1.7

jp-LiveScript

livescript >= 1.5

Based on IJavascript and jpCoffeescript

Juka

Jupyter 4

Any

Juka

Example

Wrapper. Requires Juka executable in PATH

ICSharp

Jupyter 4.0

C# 4.0+

scriptcs

IRKernel

IPython 3.0

R 3.2

rzmq

SageMath

Jupyter 4

Any

many

pari_jupyter

Jupyter 4

PARI/GP >= 2.9

IFSharp

Jupyter 4

F#

Features

lgo

Jupyter >= 4, JupyterLab

Go >= 1.8

ZeroMQ (4.x)

Example

Docker image

iGalileo

Jupyter >= 4, JupyterLab

Galileo >= 0.1.3

Docker image

gopherlab

Jupyter 4.1, JupyterLab

Go >= 1.6

ZeroMQ (4.x)

examples

Deprecated, use gophernotes

Gophernotes

Jupyter 4, JupyterLab, nteract

Go >= 1.9

ZeroMQ 4.x.x

examples

docker image

IGo

Go >= 1.4

Unmaintained, use gophernotes

IScala

Scala

almond (old name: Jupyter-scala)

IPython>=3.0

Scala>=2.10

examples

Docs

IErlang

IPython 2.3

Erlang

rebar

ITorch

IPython >= 2.2 and <= 5.x

Torch 7 (LuaJIT)

IElixir

Jupyter >= 4.0

Elixir >= 1.5

Erlang OTP >= 19.3, Rebar

example, Boyle package manager examples, Boyle examples with usage of Matrex library

IElixir Docker image, IElixir Notebook in Docker

ierl

Jupyter >= 4.0

Erlang >= 19, Elixir >= 1.4, LFE 1.2

Erlang, (optional) Elixir

IAldor

IPython >= 1

Aldor

IOCaml

IPython >= 1.1

OCaml >= 4.01

opam

OCaml-Jupyter

Jupyter >= 4.0

OCaml >= 4.02

opam

Example

Docker image

IForth

IPython >= 3

Forth

peforth

IPython 6/Jupyter 5

Forth

Example

python debugger in FORTH syntax

IPerl

Perl 5

Perl6

Jupyter >= 4

Perl 6.c

zeromq 4

IPerl6

Perl 6

Jupyter-Perl6

Jupyter

Perl 6.C

Rakudo Perl 6

IPHP

IPython >= 2

PHP >= 5.4

composer

DEPRECATED, use Jupyter-PHP

Jupyter-PHP

Jupyter 4.0

PHP >= 7.0.0

composer, php-zmq

IOctave

Jupyter

Octave

Example

MetaKernel

IScilab

Jupyter

Scilab

Example

MetaKernel

MATLAB Kernel

Jupyter

Matlab

pymatbridge

Example

MetaKernel

Bash

IPython >= 3

bash

Wrapper

Z shell

IPython >= 3

zsh >= 5.3

Example

Pharo Smalltalk

IPython >= 3

Mac Os X

Binder demo

Paro 64 bits native kernel, zeromq

PowerShell

IPython >= 3

Windows

Wrapper, Based on Bash Kernel

CloJupyter

Jupyter

Clojure >= 1.7

CLJ-Jupyter

Jupyter

Clojure

Abandoned as of 2017-02-12

jupyter-kernel-jsr223

Jupyter>=4.0

Clojure 1.8

clojure-jrs223, Java>=7

Java based JSR223 compliant

Hy Kernel

Jupyter

Hy

Tutorial

treats Hy as Python pre-processor

Calysto Hy

Jupyter

Hy

Tutorial

based on MetaKernel (magics, shell, parallel, etc.)

Redis Kernel

IPython >= 3

redis

Wrapper

jove

io.js

jp-babel

Jupyter

Babel

ICalico

IPython >= 2

multiple

Index

IMathics

Mathics

IWolfram

Wolfram Mathematica

Wolfram Mathematica®, Metakernel

MetaKernel

Lua Kernel

Lua

IPurescript

Purescript

IPyLua

Lua

Fork of Lua Kernel

ILua

Lua

Calysto Scheme

Scheme

Reference Guide

MetaKernel

Calysto Processing

Processing.js >= 2

MetaKernel

idl_kernel

IDL

IDL seem to have a built-in kernel starting with version 8.5

Mochi Kernel

Mochi

Lua (used in Splash)

Lua

Apache Toree (formerly Spark Kernel)

Jupyter

Scala, Python, R

Spark >= 1.5

Example

Skulpt Python Kernel

Skulpt Python

Examples

MetaKernel

Calysto Bash

bash

MetaKernel

MetaKernel Python

python

MetaKernel

IVisual

VPython

Ball-in-Box

IBrainfuck

Brainfuck

Example

Wrapper

JupyterQ (KX Official Kernel)

Jupyter

kdb+ ≥ v3.5 64-bit, Python ≥ 3.6, embedPy

Notebook Examples

KDB+/Q Kernel (IKdbQ)

IPython >= 3.1

Q

qzmq, qcrypt

KDB+/Q Kernel (KdbQ Kernel)

Jupyter

Q

PyQ Kernel

Jupyter

Q

Python for kdb+

ICryptol

Cryptol

CVC4

cling

Jupyter 4

C++

Example

xeus-cling

Jupyter >= 5.1

C++

Example

Supports Jupyter widgets

Xonsh

Xonsh

Example

MetaKernel

Prolog

Prolog

MetaKernel

SWI-Prolog

Jupyter >=4.0

SWI-Prolog

https://hub.docker.com/r/jm1337/jupyter-prolog-notebook/

common-lisp-jupyter

Jupyter

Common Lisp

Quicklisp

About

Maxima-Jupyter

Jupyter

Maxima

Quicklisp

ielisp

Jupyter

Emacs Lisp

emacs-zmq

Calysto LC3

Assembly Language for the Little Computer 3

Yacas

YACAS

IJython

Jython 2.7

ROOT

Jupyter

C++/python

ROOT >= 6.05

Gnuplot Kernel

Gnuplot

Example

MetaKernel

Tcl

Jupyter

Tcl 8.5

Based on Bash Kernel

Tcl

Jupyter

Tcl 8.6

Binder demo

Written from scratch with a patched Tcl zmq binding

J

Jupyter Notebook/Lab

J 805-807 (J901beta)

Examples

Jython

Jupyter>=4.0

Jython>=2.7.0

Java>=7

Java based JSR223 compliant

C

Jupyter

C

gcc

jupyterC

Jupyter

C

gcc>=3.0

Supports C89 to C17, Built for teaching C

TaQL

Jupyter

TaQL

python-casacore

TaQL tutorial

Coconut

Jupyter

Coconut

SPARQL

Jupyter 4

Python 2.7 or >=3.4

rdflib, SPARQLWrapper

Examples

Optional GraphViz dependency

AIML chatbot

Jupyter 4

Python 2.7

pyAIML

Examples

IArm

Jupyter 4

ARMv6 THUMB

Examples

Based off of the ARM Cortex M0+ CPU

SoS

Jupyter 4

Python >=3.4

Support kernels for bash, python2/3, matlab/octabe, javascript, julia, R, Stata, SAS, and more

Examples

Workflow system, Multi-Kernel support

jupyter-nodejs

Jupyter, iPython 3.x

NodeJS, Babel, Clojurescript

Examples

Pike

IPython >= 3

Pike >= 7.8

Wrapper, Based on Bash Kernel

imatlab

ipykernel >= 4.1

MATLAB >= 2016b

jupyter-kotlin

Jupyter

Kotlin 1.4.20-dev-*** DEV

Java >= 8

Samples

jupyter_kernel_singular

Jupyter

Singular 4.1.0

Demo

Optional PySingular for better performance, surf for images, details

spylon-kernel

ipykernel >=4.5

python >= 3.5, scala >= 2.11

Apache Spark >=2.0

Example

MetaKernel

mit-scheme-kernel

Jupyter 4.0

MIT Scheme 9.2

elm-kernel

Jupyter

Examples

Isbt

Jupyter 4.3.0

sbt >= 1.0.0

sbt

example

BeakerX

Groovy, Java, Scala, Clojure, Kotlin, SQL

example

docker image

MicroPython

Jupyter

ESP8266/ESP32

USB or Webrepl

developer notebooks

relies on the micro-controller’s paste-mode

IJava

Jupyter

Java 9

Java JDK >= 9

Binder online demo

Based on the new JShell tool

Guile

Jupyter 5.2

Guile 2.0.12

guile-json, openssl

circuitpython_kernel

Jupyter

CircuitPython

USB

Examples

stata_kernel

Jupyter >=5

Stata

Stata >=14

Communicates natively with Stata

iPyStata

Jupyter

Stata

Stata

Example Notebook

Implemented using magics machinery of ipython.

pystata-kernel

Stata >= 17

Communicates with Stata through the pystata official Python bindings

nbstata

Jupyter >= 5.2

Stata >= 17

pystata, ipydatagrid

stata_kernel example

IRacket

IPython >= 3

Racket >= 6.10

Racket, ZeroMQ

Example

jupyter-dot-kernel

Jupyter >= 4.0

dot/graphviz

graphviz version 2.40.1

Teradata SQL kernel and extensions

JupyterLab >= 3.0

SQL

Example Notebooks

HiveQL Kernel

Jupyter >= 5

HiveQL

pyhive

Display HiveQL queries in HTML tables

EvCxR Jupyter Kernel

Jupyter 4, JupyterLab, nteract

Rust >= 1.29.2

ZeroMQ 4.x.x

Examples, Binder online demo

StuPyd Kernel

Jupyter >= 4

StuPyd Programming Language

Python3, antlr4-python3-runtime >= 4.7.1

nbviewer demo

coq_jupyter

Jupyter 5

Coq

coq

Binder online demo

Cadabra2

Jupyter 5

Cadabra2

Example notebook

iMongo

MongoDB

jupyter_kernel_chapel

Jupyter

Chapel

A Jupyter kernel for Vim script

Jupyter

Vim script

SSH Kernel

Jupyter

Bash

paramiko, metakernel

Examples

A Jupyter kernel specialized in executing commands remotely with paramiko SSH client.

GAP Kernel

Jupyter

GAP >= 4.10

Binder demo

A Jupyter kernel for the computational algebra system GAP.

Wolfram Language for Jupyter

Wolfram Engine, i.e., a Wolfram Desktop or Mathematica installation; wolframscript is optional but recommended

A Jupyter kernel for the Wolfram Language (Mathematica).

GrADS kernel

GrADS >= 2.0

Bacatá

Jupyter

Java & Rascal

ZeroMQ & Rascal

Example

A Jupyter kernel generator for domain-specific languages.

nelu-kernelu

Jupyter

NodeJs 12

NodeJs 12.3+

Examples

An advanced NodeJs Jupyter kernel supporting comms and displays among other things.

IPolyglot

Jupyter

JavaScript, Ruby, Python, R, and more

GraalVM

Example Polyglot Notebook

Dockerfile

Emu86 Kernel

Jupyter

Intel Assembly Language

Introduction to Intel Assembly Language Tutorial

Common Workflow Language (CWL) Kernel

v1.1

examples directory

MIPS Jupyter Kernel

Jupyter

MIPS32 Assembly Language

Python3, SPIM

Example

Driven by Python3 and Pexpect

iTTS

Natural languages

speech-dispatcher

Example

Currently cannot output sound into files or blobs because of limitations of speech-dispatcher

xeus-clickhouse

ClickHouse SQL

xeus

Example

IQSharp

Jupyter 4

Q#

QuantumKatas

.Net Interactive

Jupyter 4

C#, F#, Powershell

.Net Core SDK

Binder Examples

mariadb_kernel

Jupyter Notebook/Lab

SQL

Internal Dependencies, MariaDB Server

Binder notebook

A Jupyter kernel for the MariaDB Open Source database

ISetlX

Jupyter

SetlX

Example

Ganymede

Jupyter >= 4.0

Java 11+, Groovy, Javascript, Kotlin, Scala, Apache Spark, and more

JShell, Apache Maven Resolver

Examples

cqljupyter

Jupyter

Cassandra CQL

CQL Examples

iclingo

IPython 8

clingo

clingo

Basic Examples

ICrystal

Jupyter

Crystal

IRC

crystal_kernel

Jupyter

Crystal

Python wrapper kernel Crystal interpreter

idg

Jupyter

Dg (Doge)

Example Notebooks

Whitenote

Jupyter>=5

Whitespace 0.1

Go>=1.19

example.ipynb

Docker image

上一篇: 清末四大奇案
下一篇: 可可公主游戏大全:热门推荐和最新游戏都在这里!

相关文章

世界杯有项延续40年的定律 决赛必有拜仁国米球员
公路车骑行318川藏线15天行程表
“freestyle”这些网络流行语是如何走红的
ofo小黄车
海信电视进入工厂模式,方便adb
U盘什么牌子好?10大U盘品牌排行榜