2021年8月4日水曜日

Jupyter Notebookをリモートから使う方法

アップデート版が公開されているので,最新情報はそちらを見てください(→アップデート版へのリンク

Jupyter Notebook(以下,Jupyter NB)は,本体がバックエンドで動いており,Webブラウザからアクセスして使う.ならばその本体に他のコンピュータからアクセスして使えるはずだ……ということで,そのやり方のメモ.

サーバ側の設定

とはいえ基本的にはローカル内で完結して利用することが前提となっているので,設定をいじる必要がある.

まずは,Anaconda Navigatorを起動する.左側のEnvironmentsタブをクリック.

中ほどにある「base (root)  ▶︎」に注目.


「Open Terminal」を選ぶ.すると,端末が立ち上がる.その端末で,次の手順を行う(「(base) $」の部分はプロンプトなので入力しないこと).

(base) $ jupyter-notebook --generate-config

これで,設定ファイルが作成される.

ホームディレクトリに.jupyter/jupyter_notebook_config.pyが作成されるはず.(Windowsのひとはログの出力をきちんと読んでそれに従ってください)

続いて,ipythonを立ち上げる.次の手順でパスワードを設定する(In [*]: はipythonのプロンプトなのでコピペしないこと).Enter password: と Verify password: では好きなパスワードを入力する.エコーバックされないのでパスワードを間違えないように入力すること.また,ここで表示される'sha1:……'は,入力したパスワードに対するハッシュ値なのでこの値を正確にどこかにコピーしておく(あるいは,この端末を開きっぱなしにしておくこと).ここで入力するパスワードは,リモートから接続する際に利用するので忘れないこと.

(base) $ ipython

Python 3.8.8 (default, Apr 13 2021, 12:59:45) 

Type 'copyright', 'credits' or 'license' for more information

IPython 7.22.0 -- An enhanced Interactive Python. Type '?' for help.


In [1]: from IPython.lib import passwd


In [2]: passwd()

Enter password: 

Verify password: 

Out[2]: 'sha1:******************** ... ***'


In [3]: 

.jupyter/jupyter_notebook_config.pyファイルの末尾に以下を追記する.

c.IPKernelApp.pylab = 'inline'

c.NotebookApp.ip = '0.0.0.0'

c.NotebookApp.open_browser = False

c.NotebookApp.port = 9999

c.NotebookApp.password = u'sha1:******************** ... ***'

ここで,最後の行は先ほどのハッシュ値をコピペする.以上で準備は終わり.

リモートからの接続

Anaconda Navigatorに戻り,Jupyter NBを起動する.サーバのログが出力されるターミナルが現れるが,open_brower = Falseが設定されているので,サーバを立ち上げたマシン側ではブラウザのJupyter NBは表示されない.

リモートからWebブラウザで接続する.ポート番号を9999に変更したので,http://マシン名:9999/としてアクセスすること.

パスワード画面が現れるので,先ほど設定したパスワードを入れてログインする.

フォルダを辿っていくと,ハンズオン用に用意したディレクトリにアクセスできる.

0 件のコメント:

コメントを投稿