
関連するソリューション

アプリケーション開発
先端技術部
テクニカルスペシャリスト 黒住 好忠
JupyterLab

JupyterLabを使って気になるところ
pip install jupyterlab
というコマンド1つで簡単にできてしまいますが、実際に使っていると気になる点がいくつか出てきます。バージョン情報
- Windows 10 21H2 (Build 19043.1237)
- Docker Desktop Ver 4.0.1 (68347)
- Engine: 20.10.8
- Compose: v2.0.0-rc3
- Python 3.9.7 (python:3.9.7-buster)
- jupyterlab 3.1.14
- black 21.9b0
- jupyterlab-code-formatter 1.4.10
- jupyterlab-git 0.32.4
- ipywidgets 7.6.5
- jupyterlab-widgets 1.0.2
- lckr-jupyterlab-variableinspector 3.0.9
構成
Dockerコンテナの構成

フォルダ構成

Docker用の各種ファイル
Dockerfile
と、全体の構成を取りまとめている、docker-compose用の docker-compose.yml
の2ファイルです。up-down.cmd
はdocker-composeを起動/終了するための簡単なバッチファイルです。Dockerfile
python:3.9.7-buster
を使用しています。極端に古いバージョンでなければ、これ以外のイメージを選択しても問題ありません。RUN
でコマンドを実行する度に新しいレイヤーが作成される仕様なので、関連する処理は「1つのRUNでまとめて記述」しておくことをお勧めします。FROM python:3.9.7-buster
ARG DEBIAN_FRONTEND=noninteractive
# パッケージの追加とタイムゾーンの設定
# 必要に応じてインストールするパッケージを追加してください
RUN apt-get update && apt-get install -y \
\
tzdata && ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENV TZ=Asia/Tokyo
# JupyterLab関連のパッケージ(いくつかの拡張機能を含む)
# 必要に応じて、JupyterLabの拡張機能などを追加してください
RUN python3 -m pip install --upgrade pip \
&& pip install --no-cache-dir \
\
black \
jupyterlab \
jupyterlab_code_formatter \
jupyterlab-git \
lckr-jupyterlab-variableinspector \
jupyterlab_widgets \
ipywidgets
import-ipynb
# 基本パッケージ
# Pythonでよく利用する基本的なパッケージです
# JupyterLabの動作には影響しないので、必要に応じてカスタマイズしてください
RUN pip install --no-cache-dir \
\
numpy \
pandas \
scipy \
scikit-learn \
pycaret \
matplotlib \
japanize_matplotlib \
mlxtend \
seaborn \
plotly \
requests \
beautifulsoup4 \
Pillow
opencv-python
# 追加パッケージ(必要に応じて)
# 各環境に特化したパッケージがある場合、この部分に追加します
RUN pip install --no-cache-dir \
\
pydeps \
graphviz \
pandas_profiling \
shap \
umap \
xgboost lightgbm
docker-compose.yml
version: "3.9"
services:
py3:
build:
context: ./py3
dockerfile: Dockerfile
restart: always
entrypoint: >
jupyter-lab
--allow-root
--ip=0.0.0.0
--port=8888
--no-browser
--NotebookApp.token=''
--notebook-dir=/workspace expose:
- "8888"
ports:
- "127.0.0.1:8888:8888"
volumes:
- ./py3/root_jupyter:/root/.jupyter
- ./workspace:/workspace
# GPUを使う場合の設定
# environment:
# - "NVIDIA_VISIBLE_DEVICES=all"
# - "NVIDIA_DRIVER_CAPABILITIES=all"
# deploy:
# resources:
# reservations:
# devices:
# - capabilities:
# - gpu
up-down.cmd
docker-compose up
の部分を docker-compose up -d
に変更してください。@echo off
setlocal
for /f "usebackq" %%X in (`docker-compose ps -q`) do set DCPS=%%X
if ""%DCPS%%""=="""" (goto __LAUNCH__) else (goto __SHUTDOWN__)
:__LAUNCH__
echo Launch...
docker-compose build
start http://localhost:8888
docker-compose up
goto __END__
:__SHUTDOWN__
echo Shutdown...
docker-compose down
goto __END__
:__END__
Jupyter Labの設定
root_jupyter
フォルダに永続化するようにしているので、次回以降も設定内容が引き継がれるようになります。フォントのインストールと設定
フォントのインストール
※以下外部サイト
フォントの設定
{
"fontFamily": "'Roboto Mono', 'Migu 1M'"
}
{
"overrides": {
"code-font-family": "'Roboto Mono', 'Migu 1M', Consolas",
"code-font-size": "10.5pt",
"content-font-family": "'Migu 1C'",
"content-font-size1": null,
"ui-font-family": null,
"ui-font-size1": null
},
"theme": "JupyterLab Light",
"theme-scrollbars": false
}
コードフォーマッターの設定
Shift+Alt+F
でBlackを使ったコードフォーマットを行えるように、ショートカットキーの登録も行います。{
"shortcuts": [
{
"command": "jupyterlab_code_formatter:black",
"keys": [ "Shift Alt F" ],
"selector": ".jp-Notebook.jp-mod-editMode"
}
]
}
自動保存の無効化
使い方
新しいJupyterLab環境の作成方法
JupyterLabの便利な機能
コードフォーマット
パフォーマンス計測
%%time
と記入しておけば、自動でコードブロックの実行時間を計測できます。%time
や %timeit
などを使って、特定処理のパフォーマンスや、指定された回数分、繰り返し実行したときのパフォーマンスなども計測可能です。
コマンドの実行
!
マークを付けてコマンドを実行できます。コマンドの実行結果は、JupyterLabの実行結果に出力できるので、結果を確認したい場合にも便利です。!pip install xxx
と記載できます。なお、スポットでインストールしたライブラリは、コンテナを終了したタイミングで消えます。(この特徴を活かして、色々なパッケージの導入テストを行えます。万が一環境が壊れてしまっても、コンテナを再起動すれば元通りになります)
!
で実行した結果をPythonの変数に代入して、処理に使う事も可能です。( !
マークによる処理はJupyterLab側の機能なので、Pythonの文法上は正しくありません。そのため、コードフォーマッターを適用しようとするとエラーになります)
ヘルプの表示
?
を付けて実行すれば、簡単な説明を表示できます。デフォルト引数の値も確認できますし、わざわざ別ページでAPIドキュメントを調べる必要もないので、とても便利ですね。??
という形で、?マークを2つ付けると、更に詳細なヘルプが表示されます。
変数値の表示

Notebook(ipynb)のインポート
del
でimportしたオブジェクトを削除するか、JupyterLabのカーネルを再起動してください。
最後に
当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。
エバンジェリストによるコラムやIDグループからのお知らせなどを
メルマガでお届けしています。