LoginSignup
5
4

More than 1 year has passed since last update.

動作する Jupyter カーネルの一覧

Last updated at Posted at 2021-08-07

自分用。
各言語の安定して動作する Jupyter カーネルの一覧。安定性は時々刻々と変化するので、その都度更新する。
色々な言語のメモ書きやプレイグラウンドの環境として役に立つ。
ここに載っていないものはカーネルとして動作しないものや、単に自分が興味のない言語だったりする。

言語 カーネル
Python IPyKernel
Julia IJulia
R IRKernel
Ruby IRuby
PHP Jupyter-PHP
JavaScript tslab
IJavaScript
TypeScript tslab
Go Gophernotes
Rust EvCxR Kernel
Java BeakerX
IJava
Kotlin jupyter-kotlin
Scala almond
BeakerX
Groovy BeakerX
C++ ROOT
C# .NET Interactive
F# .NET Interactive
Raku Jupyter-Perl6
Perl IPerl
Bash Bash
Zsh Z shell
PowerShell .NET Interactive
PowerShell
Wolfram Language Wolfram Language for Jupyter
Gnuplot Gnuplot
Lua ILua
  • C++ のカーネルとしては cling と xeus-cling もあるが、前者に対しては cling のバージョンアップで突然消えた (あった頃から不安定だった) し、後者のセットアップには miniconda が事実上必須。 miniconda の代わりに Anaconda を使うとうまく動作しない。 (余計なパッケージが多いから?) ROOT の方が間違えなく使えそう。
  • BeakerX は JVM 言語に対応したカーネルであるが、 Scala, Groovy はあまり動作が安定してない。 Kotlin はエラーで動作しなかったので非掲載。


インストール手順

それぞれのカーネルのリポジトリの説明通りにやれば大抵はセットアップができるのだが、一部のカーネルはうまくいかないので自分がうまくいった方法をまとめた。

ここで記述しているのは macOS の場合である。 Homebrew がインストールされ、 Jupyter もインストールされている前提で説明する。
基本的に pip を使用し、 Anaconda を使う方法はここでは紹介しない。


IPyKernel

  • カーネルのインストール
python3 -m pip install -q ipykernel
  • カーネルの追加
python3 -m ipykernel install --user --name=python


IJulia

  • 環境のインストール
brew install julia
# cask 版より formula 版の方が個人的には使いやすかった
  • カーネルのインストール
julia -E '''
    import Pkg
    Pkg.add("IJulia")
'''
  • カーネルの追加
julia -E '''
    import Pkg
    ENV["JUPYTER"]="/usr/local/bin/jupyter"
    Pkg.build("IJulia")
'''


IRKernel

  • 環境のインストール
brew install r
  • カーネルのインストール
R -q -e """
    install.packages('IRkernel',repos='https://cran.ism.ac.jp/')
"""
  • カーネルの追加
R -q -e """
    IRkernel::installspec()
"""


IRuby

  • 環境のインストール
brew install ruby

# gem のパスは通しておく
source PATH="$PATH:/usr/local/lib/ruby/gems/3.0.0/bin"
  • カーネルのインストール
gem install ffi-rzmq
gem install iruby --pre
  • カーネルの追加
iruby register --force


Jupyter-PHP

  • 環境のインストール
brew install php
  • php-zmq のインストール (既にインストールしていればこの手順は不要)
phpIni=`php --ini | grep -oE "\/.+\/php.ini"`
(
    git clone https://github.com/mkoppanen/php-zmq.git && \
    cd php-zmq && \
    phpize && \
    ./configure && \
    make && \
    make install && \
    echo "extension=zmq.so" >> $phpIni
)
rm -rf php-zmq
  • カーネルの追加
    • composer 2.x 以降を使うとエラーになるので (Jupyter-PHP自体の構成の不備で) composer 1.x をダウンロードしてきて使用する
    • $PATH に色々な場所が含まれているとうまくいかなかったので、一時的に $PATH を必要最小限にする
    • カーネルの構成後、 pkgs ディレクトリの挙動が謎なので適当に直す
(
    PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" && \
    mkdir Jupyter-PHP && \
    cd Jupyter-PHP && \
    nscurl -L -o installer.phar "https://litipk.github.io/Jupyter-PHP-Installer/dist/jupyter-php-installer.phar" && \
    nscurl -L -o composer.phar "https://getcomposer.org/composer-1.phar" && \
    php installer.phar install -vvv ~/Library/Jupyter/kernels composer.phar && \
    cd ~/Library && \
    rm -rf jupyter-php/pkgs && \
    mv Jupyter/kernels/jupyter-php/pkgs jupyter-php/pkgs && \
    rm -rf Jupyter-PHP
)


tslab

  • 環境のインストール
brew install node
npm install -g typescript ts-node
  • カーネルのインストール
npm install -g tslab
  • カーネルの追加
tslab install --python=/usr/local/bin/python3


Ijavascript

  • 環境のインストール
brew install node
  • カーネルのインストール
npm install -g ijavascript
  • カーネルの追加
ijsinstall


Gophernotes

  • 環境のインストール
brew install go
  • カーネルのインストール
# インストール場所
gopath=`go env GOPATH`
gopherdata="$gopath/pkg/mod/github.com/gopherdata"

# 既存のインストールを削除
if [ -d "$gopherdata" ]; then
    find "$gopherdata" -name "gophernotes*" -depth 1 -exec sudo rm -rf "{}" \;
fi

GO11MODULE=on go get github.com/gopherdata/gophernotes
  • カーネルの追加
gopath=`go env GOPATH`
gopherdata="$gopath/pkg/mod/github.com/gopherdata"

gophernotes=`find "$gopherdata" -name "gophernotes*" -depth 1` && \
mkdir ~/Library/Jupyter/kernels/go && \
cd ~/Library/Jupyter/kernels/go && \
cp "$gophernotes/kernel/kernel.json.in" kernel.json && \
chmod +w kernel.json && \
cat kernel.json | sed -e "s|gophernotes|$gopath/bin/gophernotes|g" > kernel.json


BeakerX

  • 環境のインストール
# 既に別の JDK をインストールしているのであればこの手順は不要
brew install openjdk
sudo ln -s /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/brew-openjdk.jdk
  • カーネルのインストール
# 公式には Anaconda を使う方法が提示されているが、 pip でも構成できる。

python3 -m pip install beakerx-kernel-java beakerx-kernel-scala beakerx-kernel-groovy
  • カーネルの追加
sp=`python -c """
    import site
    print (site.getsitepackages()[0],end='')
"""`

ll=(java scala groovy)
for [ $lang in "${ll[@]}" ]; do
    jupyter kernelspec install "$sp/beakerx_$lang/kernel" --user --name=$lang
    k="$HOME/Library/Jupyter/kernels/$lang"
    cat "$k/kernel.json" | sed "s/\$PATH/\"$k\"/" > "$k/kernel.json"
done


IJava

  • 環境のインストール
# 既に別の JDK をインストールしているのであればこの手順は不要
brew install openjdk
sudo ln -s /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/brew-openjdk.jdk
  • カーネルの追加
# 最新バージョンを取得
version=`curl -Ls -o /dev/null -w %{url_effective} "https://github.com/SpencerPark/IJava/releases/latest" | grep -oE "[0-9\.]+$"`

mkdir IJava && \
cd IJava && \
nscurl -L "https://github.com/SpencerPark/IJava/releases/download/v#{version}/ijava-$version.zip" | tar xf - && \
python3 installer.py --user
cd ../ && rm -rf IJava


jupyter-kotlin

  • 環境のインストール
# 既に別の JDK をインストールしているのであればこの手順は不要
brew install openjdk kotlin
sudo ln -s /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/brew-openjdk.jdk
  • カーネルのインストール
python3 -m pip install kotlin-jupyter-kernel
  • カーネルの追加
# カーネルをインストールした時点で自動的に追加されるっぽいが、不安定で手動で追加するのが難しそうなので、ここでは手動でカーネルを作るコマンドを説明する

mkdir ~/Library/Jupyter/kernels/kotlin
printf '''
    {
        "display_name":"Kotlin",
        "language":"kotlin",
        "interrupt_mode":"message",
        "argv":["python3","-m","run_kotlin_kernel","{connection_file}"],
        "metadata":{
            "jar_path_detect_command":["python3","-m","kotlin_kernel","detect-jars-location"]
        }
    }
''' > ~/Library/Jupyter/kernels/kotlin/kernel.json


almond

  • 環境のインストール
# 既に別の JDK をインストールしているのであればこの手順は不要
brew install openjdk scala
sudo ln -s /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/brew-openjdk.jdk
  • カーネルの追加
nscurl -L -o coursier "https://git.io/coursier-cli"
chmod +x coursier
./coursier launch -M almond.ScalaKernel --fork almond -- --install
rm -f coursier


ExCvR Kernel

  • 環境のインストール
# 単体の rust ではなく、 rustup を使用する。混乱を引き起こす可能性があるので rust をインストールしているのであればアンインストールしておくべき。

brew install rustup-init

# rustup のパスを通しておく
source PATH="$PATH:$HOME/.cargo/bin"
  • カーネルのインストール
cargo install evcxr_jupyter
  • カーネルの追加
evcxr_jupyter --install


ROOT

  • 環境のインストール
brew install root
  • カーネルの追加
kernel="/usr/local/opt/root/etc/root/notebook/kernels/root"

jupyter kernelspec install --user "$kernel"


.Net Interactive

  • 環境のインストール
brew install dotnet
  • カーネルのインストール
dotnet tool install -g --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" Microsoft.dotnet-interactive
  • カーネルの追加
dotnet interactive jupyter install


IPerl6

  • 環境のインストール
brew install rakudo-star
  • カーネルのインストール
zef install Jupyter::Kernel
  • カーネルの追加
jkr="/usr/local/opt/rakudo-star/share/perl6/site/bin/jupyter-kernel.raku"

"$jkr" --generate-config --location="$HOME/Library/Jupyter/kernels/raku"


IPerl

  • 環境のインストール
brew install perl cpanm
  • カーネルのインストール
cpanm --build-args OTHERLDFLAGS= ZMQ::LibZMQ3 && \
cpanm Markdown::Pod --force && \
cpanm Devel::IPerl && \
rm -rf ~/.cpanm
# Markdown::Pod はインストール後の自動テストのステップが常に失敗する。失敗してもインストールを続けるために --force オプションを付加する。
  • カーネルの追加
/usr/local/opt/perl/bin/iperl --version
# iperl コマンドを実行したときにカーネルがないことを検知してインストールしてくれる。だからバージョン確認とかが穏当だろう。


Bash

  • 環境のインストール
brew install bash
  • カーネルのインストール
python3 -m pip install -q bash_kernel
  • カーネルの追加
python3 -m bash_kernel.install --user


Z shell

  • 環境のインストール
brew install zsh
  • カーネルのインストール
python3 -m pip install -q zsh_jupyter_kernel
  • カーネルの追加
python3 -m zsh_jupyter_kernel.install --user


Wolfram Language for Jupyter

  • 環境のインストール
    コマンド wolframscript が使えるように設定。例えば Wolfram Engine for Developers とかをインストールすれば使える。 macOS であれば /Applications/Wolfram Engine.app/Contents/Resources/Wolfram Player.app/Contents/MacOS にパスを通しておく。
    何故か Visual Studio Code でこのカーネルのノートブックを開くと Wolfram Engine のアクティベーションに失敗するようになる。
  • カーネルのインストール
cd ~/Library
git clone "https://github.com/WolframResearch/WolframLanguageForJupyter.git"
  • カーネルの追加
cd ~/Library/WolframLanguageForJupyter
./configure-jupyter.wls add


Gnuplot

  • 環境のインストール
brew install gnuplot
  • カーネルのインストール
python3 -m pip install -q gnuplot_kernel
  • カーネルの追加
python3 -m gnuplot_kernel install --user


ILua

  • 環境のインストール
brew install lua
  • カーネルのインストール
python3 -m pip install -q --user ilua
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4