JupyterのNbextensionsとJupyterthemesを使う

Share Button

今さらだけど。そういえば書いてなかったので。

そもそも現状でJupyterはAWS EC2上で

$ nohup jupyter notebook > ~/out.log &
でバックグラウンドで走らせっぱなしになっているので、まずこのタスクを見つけ出して殺す。

$ ps x
   PID TTY      STAT   TIME COMMAND
  2232 ?        S      0:00 sshd: MY_ACCOUNT@pts/33
 12889 pts/32   S      0:00 /home/MY_ACCOUNT/venv1/bin/python3.5 /home/MY_ACCOUNT/venv1/bin/jupyter-notebook
 12895 pts/32   R+     0:00 ps x
PID: 12889でjupyterが走っているのがわかるので、
$ kill 12889
これでJupyterの走っていたURLを叩いても見つからなくなる。

その状態でnbextensionsjupyterthemesを入れる。

まずnbextensionsから。それ自体と一緒にconfiguratorも入れておくとJupyterのタブ上からExtensionsのオンオフが簡単に実現できるので入れることを強く推奨するものである。
$ pip install jupyter_contrib_nbextensions
$ jupyter contrib nbextension install --user
$ pip install jupyter_nbextensions_configurator
$ jupyter nbextensions_configurator enable --user

Nbextensionsは無事入ったので、一旦確認したければ
$ jupyter notebook
で起動かけて確認してみるとよい。ホーム画面のFiles, Running, Clustersの並びにNbextensionsの新しいタブができているはず。

nbextensionsに入っているものだとCodefolding, Variable Inspector, Scratchpadが私の中では必須。
Codefoldingは単純に一旦定義して二度と開かないような長ったらしい関数を畳むのに使っていてまあ普通にVisual Studio Codeとかにあるのと近いインデントベースでのfoldingが可能。



Scratchpadに関しては、Notebook上のCellを汚さずにControl+bからShift+Enterで細かいコードをサブミットして状況の確認したりとかかな。これもターミナルとかでサブミットするのと違ってちゃんと改行して書けるので便利。ただし画像ほど”ちゃんとした”ものはCellに書くべきで、ちょっとしたtype(foo)とかdf.shapeとかあたりが想定されているはずではある。


そして私のように解析とかモデル開発とかやる人にはVariable Inspectorで今存在してる変数とそのサイズあたりの情報が諸々目視できるのはまず間違いなく便利だと思う。


次にJupyterthemes。Jupyterが立ち上がっているなら先ほどと同じくcontrol+cなりkillなりでプロセスを潰してから
$ pip install jupyterthemes
で入れたら、現状で入っているテーマの確認を
$ jt -l
Available Themes: 
   chesterish
   grade3
   gruvboxd
   gruvboxl
   monokai
   oceans16
   onedork
   solarizedd
   solarizedl
で、実際に変更する場合には
$ jt -t gruvboxd
あたりでいける。

先ほどのnbextensionsを紹介した各画像だとなぜかツールバーが死んでいる。これが本当に消えて全然戻らないのでそちらの原因も調査した。元HTML+CSS職人なのでその辺も自力でいじる。

そもそも上のFile, Editの並びがCSS上ではdiv id=”menubar”、そして肝心のツールバーがdiv id=”maintoolbar”で定義されており、眺めている限りちゃんと存在はしているがとにかく消されている。大変困った。
どうせJupyterthemesを入れたところでなんかされたんだろうと思い、
~/.jupyter/custom/custom.css
上に色々とCSSが追記されていたので眺めていたところ、以下の記述を発見。

div#maintoolbar {
 display: none !important;
}

馬鹿か。やめろ。
何かしらimportantなのだそうだが、ないと普通に困るので修正。

div#maintoolbar {
 display: block;
}

すると、


うん。出てきた。
勝手なことしやがって。ボケが。

style="display:block; text-align:center;"
data-ad-layout="in-article"
data-ad-format="fluid"
data-ad-client="ca-pub-3546003055292762"
data-ad-slot="5749192034">

Share Button

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.