Taka's blog

Techネタなど

Jupyter notebook (IPython notebook)をリモートサーバ,ワークステーションで動かした

アブスト

Pythonでシミュレーションを組んで回すとき,メモリの関係でワークステーションで回す必要があった.普段使ってるJupyter notebookをワークステーション上で走らせ,自分の端末のブラウザから使えたら便利だなと思った.調べてやったらできた.

気をつけること

Jupyter notebookは,IPython以外も使えるように拡張されたものであり,設定ファイルはIPython notebookのものとは異なります.

環境

Anacondaで一式を入れて,Python3.5を使用
自分の端末もワークステーションMacで,同一サブネット内に接続

手順

qiita.com

これを大いに参考にして設定.
インストールはすでに終わっているので,鍵の設定からやりました.
ブラウザを立ち上げない設定は入れず,ポートも49999にしました.

おまけにqtconsoleも接続する

qtconsoleはIPythonのコンソールですが,すでに起動しているカーネルに接続することができます.これが何を意味するかというと,notebookでは決まった形で結果を表示しておいて,途中の変数や配列の一部を見たい時にqtconsoleでチョロっと眺めることができます.Jupyter notebookには選択部分を実行ってのがないので,「すぐ下にセル追加→ちょこっと実行→セル削除」ってやってた部分がなくなり捗ります.

bashで書く

#!/bin/bash
scp ユーザー名@ワークステーション名:/Users/ユーザー名/Library/Jupyter/runtime/kernel* /tmp/qtconsole.json
jupyter qtconsole --existing /tmp/qtconsole.json --ssh ユーザー名@ワークステーション名

実行するときは,上のコマンドをテキストエディタで書いてqtconsole.shとして保存し,ターミナルで

bash qtconsole.sh

とするなど.ファイル名は自由

何をやっているのか

scpでワークステーションからカーネル接続情報のJSONファイルを/tmpにダウンロードします.そしてsshを介して接続するオプションをつけてqtconsoleを起動します.

使用感

どの端末からもJupyter notebookを開ける(iPhoneからも開けることは開ける)ので便利です.端末側はブラウザさえあればいいので環境も汚れません.