はじめに
この記事では、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での開発環境の設定
5. Jupyter Notebookの使用
- VSCodeで
.ipynb
ファイルを開きます - 右上の"Select Kernel"をクリックします
- "Python 3"を選択します
トラブルシューティング
カーネルが見つからない場合
以下のコマンドでコンテナを再ビルドします:
docker-compose down
docker-compose up --build -d
その後、VSCodeを再起動し、"Rebuild Container"を実行します。
パッケージのインポートエラーが発生する場合
- コンテナ内でパッケージが正しくインストールされているか確認:
docker-compose exec jupyter pip list
- 必要に応じてコンテナを再ビルド:
docker-compose down --rmi all
docker-compose up --build -d
まとめ
この設定により、以下のような開発環境が構築されます:
- VSCode上でJupyter Notebookを直接編集可能
- 必要なPythonパッケージが事前インストール済み
- Docker環境による開発環境の隔離
- VSCodeの機能(コード補完、デバッグ等)を最大限活用可能
この環境を使用することで、効率的なデータ分析や機械学習の開発が可能になります。