2020年8月27日木曜日

Jupyter でプロジェクトを指定して Julia カーネル追加

以前に試した内容が頭から抜けてたので備忘録として残しておく。

Julia でプロジェクトを作成し、そのプロジェクトを指定して jupyter に kernel を追加する。

下記の手順で進めていく。
  1. Julia で新規 project を作成する
  2. 適当なパッケージを追加する
  3. Jupyter に新規 kernel を追加する
  4. 追加した kernel を試す

1. Project の作成


適当なディレクトリに移動して下記を実施。
# REPL を起動
$ julia

# "]" コマンドでパッケージモードに移行
julia> ]

# "Test" プロジェクトを作成
(@v1.5) pkg> generate Test
 Generating  project Test:
    Test/Project.toml
    Test/src/Test.jl
REPL を抜けてカレントディレクトリを確認すると Test ディレクトリが作成されており、下記のファイルおよびディレクトリが格納されている事が確認できる。
  • Project.toml
  • src

2. パッケージの追加


テスト用に下記パッケージを追加する。
  • IJulia - Jupyter 用パッケージ(必須)
  • Plots
# REPL を起動
$ julia

# "]" コマンドでパッケージモードに移行
julia> ]

# Test プロジェクト環境へ移行
(@v1.5) pkg> activate Test
 Activating environment at `~/prog/julia/Test/Project.toml`

# Test プロジェクト環境で IJulia パッケージ(Jupyter用)をインストール
(Test) pkg> add IJulia

# Plots パッケージ(テスト実行用)をインストール
# GR も同時にインストールされる模様
(Test) pkg> add Plots
下記にてインストール済みパッケージの一覧を確認できる。
(Test) pkg> status
Project Test v0.1.0
Status `~/prog/julia/Test/Project.toml`
  [28b8d3ca] GR v0.51.0
  [7073ff75] IJulia v1.21.3
  [91a5bcdd] Plots v1.6.0

3. Jupyter に Kernel を追加


上記で作成した Test プロジェクト環境を Jupyter 上の Kernel として追加する。
# REPL を起動
$ julia

# "]" コマンドでパッケージモードに移行
julia> ]

# Test プロジェクト環境へ移行
(@v1.5) pkg> activate Test
 Activating environment at `~/prog/julia/Test/Project.toml`

# BackSpace キーでパッケージモードから抜ける
# Test 環境は継続する事に注意
(Test) pkg> (BackSpace キーを押下)

# IJulia.installkernel コマンドで新規 kernel を追加
# "--project" オプションでプロジェクト(Test)を指定している事に注意
julia> using IJulia
julia> IJulia.installkernel("JuliaTest", "--project=/各々の環境でフルパス指定/Test")
[ Info: Installing JuliaTest kernelspec in /各々の環境に依存/Jupyter/kernels/juliatest-1.5
"/各々の環境に依存/Jupyter/kernels/juliatest-1.5"

3.1 設定ファイルでプロジェクトを指定


上記の IJulia.installkernel における "--project" 指定は各 kernel 用の設定ファイルを編集する事でも代用可能となる。
下記にその方法(Mac のみ)を記載する。

Julia のバージョンとプロジェクト名は各々の環境に合わせて変更する。
下記の場合だと "argv" の 5 個目の引数が当該オプションとなるのでこれを編集もしくは追加する事でプロジェクトを指定可能。
$ cat ~/Library/Jupyter/kernels/juliatest-1.5/kernel.json
{
  "display_name": "JuliaTest 1.5.1",
  "argv": [
    "/Applications/Julia-1.5.app/Contents/Resources/julia/bin/julia",
    "-i",
    "--startup-file=yes",
    "--color=yes",
    "--project=/各々の環境でフルパス指定/Test",
    "/各々の環境に依存/.julia/packages/IJulia/tOM8L/src/kernel.jl",
    "{connection_file}"
  ],
  "language": "julia",
  "env": {},
  "interrupt_mode": "signal"
}

3.2 kernel 一覧の確認


下記コマンドで kernel 一覧に今回作成した新規 kernel(juliatest-1.5) が追加されている事が確認できる。
$ jupyter kernelspec list
Available kernels:
  ...その他の kernel...
  juliatest-1.5  /ホームディレクトリのパス/Library/Jupyter/kernels/juliatest-1.5

4. 追加した kernel を試す


Jupyter を起動して kernel の一覧に今回追加した kernel が存在する事を確認。



"JuliaTest 1.5.1" kernel を指定したファイルを開いて下記コードを試す事により、以前に追加したパッケージ Plots を呼び出し可能である事が確認できる。
using Plots
gr()

x = randn(10, 3)
plot(x)


4.1 追加したカーネルの削除


今回のお試し用の環境を削除するにはコンソール上から対象カーネルを指定して下記を実行する。
確認のメッセージが表示されるので "y" を入力してリターンキーを押下するとカーネルの削除が実施される。
$ jupyter kernelspec remove juliatest-1.5
Kernel specs to remove:
  juliatest-1.5  /ホームディレクトリのパス/Library/Jupyter/kernels/juliatest-1.5
Remove 1 kernel specs [y/N]:y # y を入力してリターンキーを押下

0 件のコメント:

コメントを投稿