この記事は個人ブログと同じ内容です
Python を使ったデータ分析や視覚化を気軽に試せるように、コンテナを使ってローカル開発環境を構築してみます。
Jupyter Notebook
Jupyter Notebook は、ブラウザ上で Python を記述して実行することができる web ベースの開発環境です。(言語については Python に限らない)
開発環境
コンテナで環境を作成するので、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 つを指定しつなげています。
グラフの日本語化
解析結果をチャートに描画する際に、タイトルや凡例などに日本語を使いたい場合はデフォルトのフォントだと日本語が無く文字化けしてしまいます。 イメージ作成の際に日本語フォントをインストールしたので、それを設定ファイルに指定して、日本語が表示されるようにしてやります。
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 が出力されます。
出力された URL にアクセスすれば、Jupyter Notebook を使い始めることができます。
まとめ
データを統計解析してみたりそれをグラフなどで視覚化してみようと思った時に、ローカル環境でその全てを実現しようとすると Python 初心者にはなかなか難しいですが、Jupyter Notebook の環境を作れば簡単にその両方を叶えられるので、統計を学習したりする場合には手早くできてとても便利なのでオススメです。