1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeでDocker環境を使ったデータ分析環境(Python/Jupyter)の構築方法

Posted at

はじめに

この記事では、VSCodeとDockerを使用して、Python/Jupyter開発環境を構築する方法を説明します。この環境では、以下のような機能が利用可能です:

  • Jupyter Notebookの実行
  • 必要なPythonライブラリ(numpy, pandas, scikit-learn等)の利用
  • VSCode上での直接的なノートブック編集

必要な環境

  • Docker
  • Docker Compose
  • Visual Studio Code
  • VSCode拡張機能: Remote - Containers

プロジェクトの構造


DS_IPYNB/
├── .devcontainer/
│   └── devcontainer.json
├── docker-compose.yml
├── Dockerfile
├── main.ipynb
├── main.py
├── requirements.txt
└── workspace.code-workspace

環境構築手順

1. プロジェクトの作成

まず、プロジェクトディレクトリを作成し、必要なファイルを作成します:

mkdir DS_IPYNB
cd DS_IPYNB
mkdir .devcontainer
touch .devcontainer/devcontainer.json
touch docker-compose.yml
touch Dockerfile
touch main.ipynb
touch main.py
touch requirements.txt
touch workspace.code-workspace

2. 設定ファイルの作成

.devcontainer/devcontainer.json

{
    "name": "Python Data Science",
    "dockerComposeFile": "../docker-compose.yml",
    "service": "jupyter",
    "workspaceFolder": "/workspace",
    "customizations": {
        "vscode": {
            "extensions": [
                "ms-python.python",
                "ms-toolsai.jupyter",
                "ms-python.vscode-pylance"
            ],
            "settings": {
                "python.defaultInterpreterPath": "/usr/local/bin/python",
                "python.linting.enabled": true,
                "python.linting.pylintEnabled": true,
                "jupyter.alwaysTrustNotebooks": true,
                "jupyter.notebookFileRoot": "${workspaceFolder}",
                "jupyter.jupyterServerType": "local",
                "python.analysis.typeCheckingMode": "basic"
            }
        }
    },
    "forwardPorts": [8888],
    "postCreateCommand": "python -m ipykernel install --user --name python3 --display-name 'Python 3'"
}

docker-compose.yml

version: '3.8'

services:
  jupyter:
    build: .
    volumes:
      - .:/workspace
    ports:
      - "8888:8888"
    environment:
      - JUPYTER_ENABLE_LAB=yes
    command: jupyter lab --ip=0.0.0.0 --allow-root --no-browser --NotebookApp.token='' --NotebookApp.password=''

Dockerfile

FROM python:3.9-slim

WORKDIR /workspace

# システムの依存関係をインストール
RUN apt-get update && apt-get install -y \
    build-essential \
    curl \
    software-properties-common \
    git \
    && rm -rf /var/lib/apt/lists/*

# requirements.txtをコピーしてパッケージをインストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Jupyterのカーネルを明示的にインストール
RUN python -m ipykernel install --user --name python3 --display-name "Python 3"

EXPOSE 8888

# 作業ディレクトリを設定
WORKDIR /workspace

requirements.txt

jupyter==1.0.0
jupyterlab==4.0.7
numpy==1.24.3
pandas==2.1.1
matplotlib==3.8.0
seaborn==0.13.0
scikit-learn==1.3.1
polars==0.19.8
plotly==5.17.0
ipykernel==6.25.2

3. 環境の構築と起動

以下のコマンドを順番に実行します:

# コンテナのビルドと起動
docker-compose up --build -d


4. VSCodeでの開発環境の設定

  1. VSCodeの左下にあるアイコンをクリックします
    これ↓
    スクリーンショット 2024-10-31 0.25.53.png

  2. コンテナーで再度開くを選択します
    スクリーンショット 2024-10-31 0.27.17.png

  3. コンテナのビルドが完了するまで待ちます

5. Jupyter Notebookの使用

  1. VSCodeで.ipynbファイルを開きます
  2. 右上の"Select Kernel"をクリックします
  3. "Python 3"を選択します

実際に実行して確認します。
スクリーンショット 2024-10-31 0.22.28.png

トラブルシューティング

カーネルが見つからない場合

以下のコマンドでコンテナを再ビルドします:

docker-compose down
docker-compose up --build -d

その後、VSCodeを再起動し、"Rebuild Container"を実行します。

パッケージのインポートエラーが発生する場合

  1. コンテナ内でパッケージが正しくインストールされているか確認:
docker-compose exec jupyter pip list
  1. 必要に応じてコンテナを再ビルド:
docker-compose down --rmi all
docker-compose up --build -d

まとめ

この設定により、以下のような開発環境が構築されます:

  • VSCode上でJupyter Notebookを直接編集可能
  • 必要なPythonパッケージが事前インストール済み
  • Docker環境による開発環境の隔離
  • VSCodeの機能(コード補完、デバッグ等)を最大限活用可能

この環境を使用することで、効率的なデータ分析や機械学習の開発が可能になります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?