RitoLabo

Jupyter Notebook で Python を書くためのコンテナ開発環境を作成する

  • 公開:
  • 更新:
  • カテゴリ: Python
  • タグ: Python,JupyterNotebook

Python を使ったデータ分析や視覚化を気軽に試せるように、コンテナを使ってローカル開発環境を構築してみます。

アジェンダ
  1. Jupyter Notebook
  2. 開発環境
  3. Dockerfile
  4. docker-compose.yml
  5. グラフの日本語化
  6. 動作確認

Jupyter Notebook

Jupyter Notebook は、ブラウザ上で Python を記述して実行することができる web ベースの開発環境です。(言語については Python に限らない)

https://jupyter.org/

開発環境

コンテナで環境を作成するので、Docker が入っている前提です。

  • Docker for Mac 4.1.0
    • Docker 20.10.8
    • Compose 1.29.2

また、最終的なディレクトリ・ファイル構成は以下になります。

.
├── Dockerfile
├── config
│ └── matplotlibrc
└─── docker-compose.yml

これから上記 3 つのファイルを作成していきます。

Dockerfile

まずは Dockerfile を作成してイメージを定義します。

Dockerfile
FROM python:3.9.7-buster

RUN apt-get update
RUN apt install -y locales && localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9

# 日本語 font のインストール
RUN apt-get install -y fonts-noto-cjk

# python ライブラリのインストール
RUN python -m pip install pandas
RUN python -m pip install numpy
RUN python -m pip install matplotlib
RUN python -m pip install jupyterlab
RUN python -m pip install notebook
  • Jupyter Notebook を日本語で使いたいので、locales を入れて言語の設定を行なっています。
  • グラフ描画の際に、タイトルや凡例を日本語で表示させたいので、日本語のフォントをインストールしています。
  • 最後に記述されている Python ライブラリのインストールは、必要最低限だけ記述してあります。

なお、私は Debian や Python に関しては弱者なのでイメージに buster を選択しています。この辺に詳しい場合は、適宜最適なイメージを指定すると良いと思います。

docker-compose.yml

次に、docker-compose.yml を作成します。

docker-compose.yml
version: '3'
services:
python3:
build: .
container_name: python3
working_dir: /root/opt
tty: true
volumes:
- ./src:/root/opt
- ./config:/root/.config/matplotlib
ports:
- "8888:8888"

volumes には、以下の 2 つを指定しつなげています。

  • Jupyter Notebook で作成したファイルやデータを設置するための src ディレクトリ
  • matplotlib の設定ファイルを設置するディレクトリ

グラフの日本語化

解析結果をチャートに描画する際に、タイトルや凡例などに日本語を使いたい場合はデフォルトのフォントだと日本語が無く文字化けしてしまいます。 イメージ作成の際に日本語フォントをインストールしたので、それを設定ファイルに指定して、日本語が表示されるようにしてやります。

config/matplotlibrc
font.family:  Noto Sans CJK JP

動作確認

設定が終わったので、以下のコマンドを順に流してコンテナを作成します。

# 1. イメージ作成
docker compose build

# 2. コンテナ起動
docker compose up -d

コンテナが起動したら、以下のコマンドで Jupyter Notebook を起動します。

# Jupyter Notebook 起動
docker compose exec python3 jupyter notebook --allow-root --ip=0.0.0.0

コマンドを実行すると、以下のように URL が出力されます。

Jupyter Notebook 起動後に URL が表示される

出力された URL にアクセスすれば、Jupyter Notebook を使い始めることができます。

Jupyter Notebook で Python を使ったデータ分析をローカルで試すことができる

まとめ

データを統計解析してみたりそれをグラフなどで視覚化してみようと思った時に、ローカル環境でその全てを実現しようとすると Python 初心者にはなかなか難しいですが、Jupyter Notebook の環境を作れば簡単にその両方を叶えられるので、統計を学習したりする場合には手早くできてとても便利なのでオススメです。