JupyterLabをインストールするには

Project Jupyter
The Jupyter Notebook is a web-based interactive computing platform. The notebook combines live code, equations, narrativ...

JupyterLabは、ブラウザでプログラミング操作をしながら、コマンド履歴や実行結果、メモなどをmarkdown風ノートに記録するツールです。

bash kernelやssh kernelを追加インストール使うことで、bashやsshの操作履歴や実行結果を記録として残すことができます。ターミナルからコピペする必要がありません。

何を言っているのかわからないよ?

スクショを見れば一目瞭然よ

インストール

Mac OS X 10.15.4
Ubuntu 18.04

jupyterlabをpip でインストールします。

$ pip install jupyterlabCode language: Bash (bash)
$ jupyter --version
jupyter core     : 4.6.3
jupyter-notebook : 6.0.3
qtconsole        : not installed
ipython          : 7.14.0
ipykernel        : 5.2.1
jupyter client   : 6.1.3
jupyter lab      : 2.1.2
nbconvert        : 5.6.1
ipywidgets       : not installed
nbformat         : 5.0.6
traitlets        : 4.3.3

$ jupyter lab --version
2.1.2

$ jupyter kernelspec list
Available kernels:
  python3    /Users/aoki.makoto/.pyenv/versions/3.8.2/lib/python3.8/site-packages/ipykernel/resourcesCode language: Bash (bash)

使い方

起動と終了

ターミナルを開いて、作業したいディレクトリへcdします。ホームディレクトリのままでもかまいません。jupyter labを起動します。

jupyter labを終了するまで、このターミナルを使えません。最後に「&」をつけて起動してもいいのですが、他の作業をしているときに、jupyterのログが表示されてしまいます。

jupyter lab専用のターミナルと割り切って、他のターミナル作業が必要なときは、新しくターミナルを開いて作業してください。

$ jupyter lab
[I 10:06:07.197 LabApp] JupyterLab extension loaded from /Users/aoki.makoto/.pyenv/versions/3.8.2/lib/python3.8/site-packages/jupyterlab
[I 10:06:07.198 LabApp] JupyterLab application directory is /Users/aoki.makoto/.pyenv/versions/3.8.2/share/jupyter/lab
[I 10:06:07.200 LabApp] Serving notebooks from local directory: /Users/aoki.makoto
[I 10:06:07.201 LabApp] The Jupyter Notebook is running at:
[I 10:06:07.201 LabApp] http://localhost:8888/?token=b9fd0a535c3477b65e312d1e48e4f8567036fe10cf463b5c
[I 10:06:07.201 LabApp]  or http://127.0.0.1:8888/?token=b9fd0a535c3477b65e312d1e48e4f8567036fe10cf463b5c
[I 10:06:07.201 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 10:06:07.209 LabApp] 
    
    To access the notebook, open this file in a browser:
        file:///Users/aoki.makoto/Library/Jupyter/runtime/nbserver-75725-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=b9fd0a535c3477b65e312d1e48e4f8567036fe10cf463b5c
     or http://127.0.0.1:8888/?token=b9fd0a535c3477b65e312d1e48e4f8567036fe10cf463b5c
[I 10:06:10.383 LabApp] Build is up to date

Code language: Bash (bash)

自動でWebブラウザがlocalhost:8888を開き、Jupyter Labの画面が表示されます。このLauncherタブは、Fileメニュー>New Launcherでも表示できます。

左ペインのhello.pyは、あらかじめ touch hello.py しておいたファイルです。この左ペインは、起動ディレクトリのファイル一覧です。

NotebookのPython3をクリックします。「pwd」と入力します。「▶」ボタンをクリックして実行してください。

新しいセルに「touch hello.txt」と入力します。「▶」ボタンをクリックして実行してください。bashではないので、エラーになってしまいました。

jupyter labを起動したターミナルを表示します。Ctrl + Cを押して、「y」を押して、終了します。

Shutdown this notebook server (y/[n])? y
[C 09:57:06.300 LabApp] Shutdown confirmed
[I 09:57:06.301 LabApp] Shutting down 0 kernels
Code language: JavaScript (javascript)

bash kernelのインストール

Jupyter kernels
Jupyter metapackage for installation, docs and chat - jupyter/jupyter

Jupyter Labのインストール直後は、Python kernelだけですが、各種プログラミング言語のkernelが用意されています。ここでは、bash kernel を使ってみます。

GitHub - takluyver/bash_kernel: A bash kernel for IPython
A bash kernel for IPython. Contribute to takluyver/bash_kernel development by creating an account on GitHub.

bash kernelをインストールします。

$ pip install bash_kernel

$ python -m bash_kernel.install
Installing IPython kernel spec

$ jupyter kernelspec list
Available kernels:
  python3    /Users/aoki.makoto/.pyenv/versions/3.8.2/lib/python3.8/site-packages/ipykernel/resources
  bash       /Users/aoki.makoto/Library/Jupyter/kernels/bashCode language: Bash (bash)

Fileメニュー>New launcherを表示すると、NotebookにBashが増えています!

NotebookのBashをクリックします。「echo "hoge" >hoge.txt」と入力して、「▶」ボタンをクリック。新しいセルに「cat hoge.txt」と入力して、「▶」ボタンをクリック。hoge.txtの内容を表示できました。

ssh接続できるでしょうか?新しいセルに「ssh taro@myhost.local」と入力して、「▶」ボタンをクリック。反応がありません。「■」ボタンをクリックすると、戻ってきました。password入力待ちで停止していたようです。

sshpassを使って、ssh接続してみました。新しいセルに「sshpass -P"ssh_password" ssh taro@myhost.local」と入力して、「▶」ボタンをクリック。ログイン後のメッセージが表示されましたが、そこで停止。なおMac OS Xのhomebrewにはsshpassはありませんでした。

ssh kernelのインストール

残念ながら、パスワード認証のSSH接続はできません。

パスフレーズ無しの公開鍵認証のSSH接続ができます。が、筆者の環境ではMac OS XもUbuntu 18.04でも動きませんでした。

GitHub - NII-cloud-operation/sshkernel: SSH Kernel for Jupyter
SSH Kernel for Jupyter. Contribute to NII-cloud-operation/sshkernel development by creating an account on GitHub.

ssh kernelをインストールします。

$ pip install -U sshkernel

$ python -m sshkernel install --user

$ jupyter kernelspec list
Available kernels:
  python3    /Users/aoki.makoto/.pyenv/versions/3.8.2/lib/python3.8/site-packages/ipykernel/resources
  bash       /Users/aoki.makoto/Library/Jupyter/kernels/bash
  ssh        /Users/aoki.makoto/Library/Jupyter/kernels/sshCode language: Bash (bash)

Fileメニュー>New launcherを表示すると、NotebookにSSHが増えています!

~/.ssh/configにホストを登録して、ターミナルでssh接続確認します。

$ ssh myhostCode language: Bash (bash)

NotebookのSSHをクリックします。「!ssh myhost」と入力して、「▶」ボタンをクリック。ssh接続できたことを確認して、「■」で停止します。

新しいセルで「%login myhost」と入力して、、「▶」ボタンをクリック。次のエラーで接続できませんでした。

[ssh] Not logged in.
Traceback (most recent call last):
  File "/home/aoki/.pyenv/versions/3.8.2/lib/python3.8/site-packages/sshkernel/kernel.py", line 109, in do_execute_direct
    self.assert_connected()
  File "/home/aoki/.pyenv/versions/3.8.2/lib/python3.8/site-packages/sshkernel/kernel.py", line 218, in assert_connected
    raise SSHKernelNotConnectedException
sshkernel.exception.SSHKernelNotConnectedExceptionCode language: Bash (bash)

おしいね!

タイトルとURLをコピーしました