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

    • 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
广告
将在 10 秒后关闭
bannerAds