Jupyter Notebook(以下,Jupyter NB)は,本体がバックエンドで動いており,Webブラウザからアクセスして使う.ならばその本体に他のコンピュータからアクセスして使えるはずだ.とはいえ基本的にはローカル内で完結して利用することが前提となっているので,設定をいじる必要がある……ということで,そのやり方のメモ.
サーバ側の設定(事前準備:anyenvのインストール)
対象とするサーバは,さくらインターネットでお借りしたVPSのUbuntuサーバである.ポートは9999番を使うので,ダッシュボードの「パケットフィルタ設定」で9999番は開けておくこと.
リモートログインした端末で,次の手順を行う(「$」の部分はプロンプトなので入力しない).
$ uname -a
Linux ids 5.15.0-52-generic #58-Ubuntu SMP Thu Oct 13 08:03:55 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
まず,anyenvの設定をする.
$ git clone https://github.com/anyenv/anyenv ~/.anyenv
(略)
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(anyenv init -)"' >> ~/.bashrc
$ exec $SHELL -l
(略)
$ anyenv install --init
これで,anyenvがインストールされる.次の手順で,anyenvのバージョンを確認しておこう.
$ anyenv --version
anyenv 1.1.5-1-g5c58783
サーバ側の設定(事前準備:pyenvとpythonのインストール)
次に,pyenvをインストールして,最新版のpythonをインストールしよう.まずは,pyenvをインストールする.以下では,コマンドの出力は必要がある場合以外は省略する.さらに,[y/n]などでyes or noを尋ねられたときは,基本的にyを入力すればよい.
$ anyenv install pyenv
$ exec $SHELL -l
これで,pyenvがインストールされる.同様に,動作確認を兼ねてバージョンを確認しておこう.
$ pyenv --version
pyenv 2.3.5-2-g03a5d653
さて,次はpythonのインストールである.2022年10月20日の時点で安定版の最新版は3.10.8なので,それをインストールする.が,いろいろとライブラリなどを事前にインストールしておかないとpythonのインストールがうまくいかないので,以下のとおり,必要なライブラリをインストールしておこう.
$ sudo apt install build-essential
$ sudo apt install libbz2-dev libncurses-dev libffi-dev \
libssl-dev sqlite3 libsqlite3-dev liblzma-dev
これだけインストールしておけばOKのはず.そのうえで,pythonをインストールする.
$ pyenv install 3.10.8
$ pyenv local 3.10.8
とりあえずこの作業ディレクトリ以下(ローカル)で使えるようにしておこう.
サーバ側の設定(jupyterの設定と起動)
さて,ここまでお膳立てが整ったら,あとはjupyterの設定をするだけである.まず,インストールから行う.
$ pip install jupyter
簡単にインストールできるだろう.
$ jupyter-notebook --generate-config
これで,設定ファイルが作成される.
ホームディレクトリに.jupyter/jupyter_notebook_config.pyが作成されるはず.
続いて,ipythonを立ち上げる.次の手順でパスワードを設定する(In [*]: はipythonのプロンプトなのでコピペしないこと).Enter password: と Verify password: では好きなパスワードを入力する.エコーバックされないのでパスワードを間違えないように入力すること.また,ここで表示される'sha1:……'は,入力したパスワードに対するハッシュ値なのでこの値を正確にどこかにコピーしておく(あるいは,この端末を開きっぱなしにしておくこと).ここで入力するパスワードは,リモートから接続する際に利用するので忘れないこと.
$ ipython
Python 3.10.8 (main, Oct 19 2022, 17:28:48) [GCC 11.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.5.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:******************** ... ***'
In [3]: exit
.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:******************** ... ***'
ここで,最後の行は先ほどのハッシュ値をコピペする.以上で準備は終わり.
リモートからの接続
サーバの端末に戻り,Jupyter NBを起動する.
$ jupyter-notebook
手元のマシンからWebブラウザで接続する.ポート番号を9999に変更したので,http://サーバ名:9999/としてアクセスすること.
パスワード画面が現れるので,先ほど設定したパスワードを入れてログインする.
フォルダを辿っていくと,作業用ディレクトリにアクセスできる
0 件のコメント:
コメントを投稿