JupyterLabのβ版が公開されたので、早速お手軽開発環境のcloud9で動かしてみます。
今回やる事
- jupyterlabのインストール
- cloud9向けの起動方法
- 設定ファイルの生成
1.jupyterlabのインストール
minicondaを使うとかインストール方法はそれぞれ用意されているけど、今回はpipでインストールします。
cloud9のpythonは2.7がdefaultなので事前にpython環境を整えてからsudo pip install jupyterlab
を実行すればインストールOK.
一応、インストール後にjupyter notebook --version
を実行して4.3以上が出ることがJupyerLab実行に当たっての要求です。ちなみに僕が試したcloud9環境では5.4.0が出ました。
2.cloud9向けの起動方法
JupyterLabではJupyterNotebook等と同様に、デフォルトのポートが8888なので、8080,8081,8082ポートがアプリケーション向けに許可されているcloud9では少し具合が悪いです。
そこで、cloud9でも問題なく起動できるよう下記のようにJupyterLab起動時にポートを指定するようにします。
jupyter lab --port $PORT --no-browser
--no-browser
オプションをつけておくと起動時にブラウザの立ち上げ処理をスキップしてくれます。
3.設定ファイルの生成
実行時に毎回ポート番号やブラウザ表示の設定を指示するのは億劫なので、設定ファイルに書き込んでおくことにします。
JupyterLabインストール後にjupyter lab --generate-config
を実行すると、~/.jupyter/
フォルダ下にjupyter_notebook_config.py
が生成されます。
このファイルを弄って先ほどの設定とパスワードの有無やホームディレクトリ等の設定を編集しておきましょう。
ホームディレクトリ設定
## The directory to use for notebooks and kernels.
# c.NotebookApp.notebook_dir = ''
パスワード設定
パスワード設定についてはtokenとpasswordの2種類の設定がありますが、passwordの方が平文をファイルに保存しないで済むので今回はpassword認証を設定します。
## Hashed password to use for web authentication.
#
# To generate, type in a python/IPython shell:
#
# from notebook.auth import passwd; passwd()
#
# The string should be of the form type:salt:hashed-password.
# c.NotebookApp.password = ''
上記のコメントにあるようにfrom notebook.auth import passwd; passwd()
を下記のように実行して結果をコピペすればOKです。
$ python -c "from notebook.auth import passwd; print(passwd())"
Enter password:
Verify password:
sha1:c327ac671bae:83fea40ed53f05cec23d2d5b15976d22ac3646a9
# ↑の一行を丸ごとコピペする
ポート設定
## The port the notebook server will listen on.
# c.NotebookApp.port = 8888
ブラウザ表示設定
## Whether to open in a browser after starting. The specific browser used is
# platform dependent and determined by the python standard library `webbrowser`
# module, unless it is overridden using the --browser (NotebookApp.browser)
# configuration option.
# c.NotebookApp.open_browser = True
設定を終えたら`jupyter lab'で起動させ、_http://{workspace}-{username}.c9users.io:8080/lab_から下記のような画面に移動できたら、起動確認OKです。