データサイエンス環境構築ガイド
このガイドでは、Windowsでデータサイエンス・機械学習の開発環境を一から構築する方法を解説します。
各ステップで「なぜ必要か」「何が起きるか」を丁寧に説明しているので、コマンドを打ちながら進めてください。
📋 目次
- Claude Code(まずこれを入れよう!)
- WSL(Windows Subsystem for Linux)
- Docker
- GitHub
- UV(Pythonパッケージマネージャー)
- プロジェクトテンプレートの使い方
- トラブルシューティング
ClaudeCode
Claude Codeとは?
Claude Code は、AIアシスタントClaudeをコマンドラインから使えるツールです。
環境構築で困ったとき、コードでエラーが出たとき、何をすればいいかわからないとき...
Claudeに聞けば解決してくれます!
まずはClaude Codeをインストールして、このガイドで困ったらClaudeに質問しながら進めましょう。
⚠️ 重要:WindowsとWSLは別環境!
Claude CodeはWindowsとWSLそれぞれにインストールが必要です。
| 環境 | インストール方法 | 使う場面 |
|---|---|---|
| Windows (PowerShell) | irm ... | iex |
Windows上での作業 |
| WSL (Ubuntu) | curl ... | bash |
Linux環境での開発作業 |
同じPCでも、WindowsとWSLは完全に別のOSとして動いています。
まずはWindowsにインストールして、WSLを構築したら、WSL内にも別途インストールしましょう。
【Windows】Step 1: インストール
PowerShellを開いて以下を実行:
irm https://claude.ai/install.ps1 | iex
このコマンドの意味:
-
irm: Invoke-RestMethod(URLからスクリプトをダウンロード) -
iex: Invoke-Expression(ダウンロードしたスクリプトを実行)
【Windows】Step 2: 動作確認
PowerShellを再起動してから:
claude --version
【Windows】Step 3: 初回認証
claude
ブラウザが開くので、Anthropicアカウントでログインしてください。
【WSL】Step 1: インストール(WSL構築後に実行)
WSL(Ubuntu)のターミナルで以下を実行:
curl -fsSL https://claude.ai/install.sh | bash
【WSL】Step 2: シェルを再読み込み
source ~/.bashrc
【WSL】Step 3: 動作確認
claude --version
【WSL】Step 4: 初回認証
claude
ブラウザが開くので、同じAnthropicアカウントでログインしてください。
💡 困ったときの使い方
環境構築で困ったら、このガイドのファイルをClaudeに読ませて質問できます:
claude "このガイドを読んで、〇〇の部分がわからないので教えて" -f このファイルのパス
または、Claude Codeを起動してから:
> @ファイルパス を読んで、〇〇について教えて
Claudeは最強の相棒です。遠慮なく何でも聞いてください!
WSL
WSLとは?
WSL(Windows Subsystem for Linux) は、Windows上でLinux環境を動かすための仕組みです。
データサイエンスや機械学習の分野では、多くのツールがLinux向けに作られているため、WSLは必須級のツールです。
前提条件
- Windows 10 バージョン2004以降、またはWindows 11
- 管理者権限があること
Step 1: PowerShellを管理者として開く
- Windowsキーを押す
- 「PowerShell」と入力
- 「管理者として実行」をクリック
Step 2: WSLをインストール
wsl --install
このコマンドで起きること:
- WSL機能が有効化される
- 仮想マシンプラットフォームが有効化される
- Ubuntuディストリビューションがインストールされる
Step 3: PCを再起動
インストール完了後、必ずPCを再起動してください。
shutdown /r /t 0
Step 4: Ubuntuの初期設定
再起動後、自動的にUbuntuが起動します。起動しない場合は、スタートメニューから「Ubuntu」を検索して起動してください。
Enter new UNIX username: (好きなユーザー名を入力)
New password: (パスワードを入力、画面には表示されません)
Retype new password: (同じパスワードを再入力)
⚠️ 注意: パスワードを入力しても画面には何も表示されませんが、正常に入力されています。
Step 5: 動作確認
# Ubuntuのバージョン確認
cat /etc/os-release
以下のような出力が出れば成功です:
NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
...
Step 6: システムを最新状態に更新
sudo apt update && sudo apt upgrade -y
このコマンドの意味:
-
sudo: 管理者権限で実行 -
apt update: パッケージリストを最新に更新 -
apt upgrade -y: インストール済みパッケージを更新(-yは確認をスキップ)
Docker
Dockerとは?
Docker は、アプリケーションを「コンテナ」という隔離された環境で動かすツールです。
「自分のPCでは動くのに、他の人のPCでは動かない」という問題を解決できます。
Step 1: 必要なパッケージをインストール
WSLのターミナル(Ubuntu)で以下を実行:
# 必要なパッケージをインストール
sudo apt install -y ca-certificates curl gnupg
Step 2: Dockerをインストール
公式のインストールスクリプトを使用します:
curl -fsSL https://get.docker.com | sh
このコマンドの意味:
-
curl -fsSL: URLからスクリプトをダウンロード -
| sh: ダウンロードしたスクリプトを実行
インストールには数分かかります。完了するまで待ちましょう。
Step 3: 権限の設定
毎回 sudo を打たなくて済むように、ユーザーをdockerグループに追加します:
# dockerグループに自分を追加
sudo usermod -aG docker $USER
⚠️ 重要: 設定を反映させるため、一度WSLを再起動します:
# WSLを終了
exit
PowerShellで以下を実行:
wsl --shutdown
再度Ubuntuを起動してください。
Step 4: Dockerサービスを起動
sudo service docker start
毎回起動時にDockerを自動起動させたい場合は、以下のコマンドを ~/.bashrc に追加してください:
echo 'sudo service docker start' >> ~/.bashrc
Step 5: 動作確認
docker --version
出力例:
Docker version 24.0.7, build afdd53b
さらに、テストコンテナを実行:
docker run hello-world
「Hello from Docker!」というメッセージが表示されれば成功です🎉
Step 6: Python開発用イメージをダウンロード
docker pull ghcr.io/astral-sh/uv:python3.11-bookworm
このコマンドの意味:
- Python 3.11 と UV(パッケージマネージャー)が入ったイメージをダウンロード
Step 7: 作業用ディレクトリを作成
# ホームディレクトリに作業用フォルダを作成
mkdir -p ~/research
Step 8: コンテナを起動
docker run -itd \
--shm-size=8g \
-p 8888:8888 \
-v ~/research:/workspace \
--name research \
ghcr.io/astral-sh/uv:python3.11-bookworm \
bash
各オプションの意味:
| オプション | 説明 |
|---|---|
-itd |
インタラクティブモードでバックグラウンド実行 |
--shm-size=8g |
共有メモリを8GBに設定(機械学習で必要) |
-p 8888:8888 |
Jupyter Notebook用のポート |
-v ~/research:/workspace |
ホストの~/researchをコンテナ内の/workspaceにマウント |
--name research |
コンテナに名前をつける |
Step 9: コンテナに入る
docker exec -it research bash
プロンプトが変わり、コンテナ内に入ったことが確認できます。
よく使うDockerコマンド一覧
# コンテナの一覧表示
docker ps -a
# コンテナを停止
docker stop research
# コンテナを再開
docker start research
# コンテナを削除
docker rm research
# コンテナから抜ける(コンテナは動き続ける)
exit
GitHub
GitHubとは?
GitHub は、Gitを使ったコード管理をオンラインで行えるサービスです。
コードのバックアップ、共有、チーム開発、ポートフォリオ作成などに使われます。
Step 1: GitHubアカウントを作成
- https://github.com にアクセス
- 「Sign up」をクリック
- メールアドレス、パスワード、ユーザー名を入力
- メール認証を完了
💡 ユーザー名のコツ:
- 本名またはハンドルネームで覚えやすいもの
- 将来のポートフォリオになるので、ふざけた名前は避ける
Step 2: Gitのインストール確認
WSL内では通常プリインストールされています:
git --version
インストールされていない場合:
sudo apt install -y git
Step 3: Gitの初期設定
# ユーザー名を設定(GitHubのユーザー名を推奨)
git config --global user.name "あなたのGitHubユーザー名"
# メールアドレスを設定(GitHubに登録したメールアドレス)
git config --global user.email "your.email@example.com"
# デフォルトブランチ名を設定
git config --global init.defaultBranch main
# 設定を確認
git config --list
Step 4: SSH鍵の設定(重要!)
SSH鍵を使うと、パスワードなしでGitHubにアクセスできます。
# SSH鍵を生成
ssh-keygen -t ed25519 -C "your.email@example.com"
以下のように聞かれます。すべてEnterで進めてOKです:
Enter file in which to save the key: (そのままEnter)
Enter passphrase: (そのままEnter)
Enter same passphrase again: (そのままEnter)
Step 5: SSH鍵をGitHubに登録
# 公開鍵を表示
cat ~/.ssh/id_ed25519.pub
出力例:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your.email@example.com
この出力を全部コピーして、GitHubに登録します:
- GitHubにログイン
- 右上のアイコン → Settings
- 左メニュー → SSH and GPG keys
- New SSH key をクリック
- Titleに「WSL」など分かりやすい名前を入力
- Keyにコピーした内容を貼り付け
- Add SSH key をクリック
Step 6: 接続テスト
ssh -T git@github.com
初回は以下のように聞かれます。yes と入力:
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
成功すると以下が表示されます:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
基本的なGitコマンド
# リポジトリをクローン
git clone git@github.com:ユーザー名/リポジトリ名.git
# 変更状態を確認
git status
# 変更をステージング(特定のファイル)
git add ファイル名
# コミット(変更を記録)
git commit -m "変更内容の説明"
# リモートにプッシュ
git push origin main
# ブランチを作成して移動
git checkout -b 新しいブランチ名
# 最新の変更を取得
git pull
Gitの流れを理解する
[作業ディレクトリ] → git add → [ステージング] → git commit → [ローカルリポジトリ] → git push → [GitHub]
- ファイルを編集する
- git add で変更を「ステージング」に追加
- git commit で変更を「コミット」として記録
- git push でGitHubにアップロード
UV
UVとは?
UV は、Pythonのパッケージ管理と仮想環境を高速に扱えるツールです。
従来の pip や venv よりも 10〜100倍高速 で、現代的なPython開発には欠かせません。
Step 1: UVのインストール
Dockerコンテナ内ではすでにインストールされています。WSL直接で使う場合:
curl -LsSf https://astral.sh/uv/install.sh | sh
インストール後、シェルを再起動:
source ~/.bashrc
Step 2: 動作確認
uv --version
Step 3: 仮想環境の作成
# プロジェクトディレクトリに移動
cd /workspace
# 仮想環境を作成
uv venv
このコマンドで起きること:
-
.venvディレクトリが作成される - プロジェクト専用のPython環境が準備される
Step 4: 仮想環境を有効化
source .venv/bin/activate
プロンプトの先頭に (.venv) が表示されれば成功です。
Step 5: パッケージのインストール
# 単一パッケージをインストール
uv add numpy
# 複数パッケージをインストール
uv add pandas scikit-learn matplotlib
# 開発用パッケージをインストール
uv add --dev pytest black ruff
Step 6: 依存関係の同期
pyproject.toml がある場合:
uv sync
よく使うUVコマンド一覧
# 仮想環境を無効化
deactivate
# インストール済みパッケージを確認
uv pip list
# パッケージを削除
uv remove パッケージ名
# Pythonのバージョンを指定して仮想環境を作成
uv venv --python 3.11
Template
プロジェクトテンプレートとは?
プロジェクトを始めるたびに、ディレクトリ構成を考えたり、設定ファイルを作ったりするのは面倒です。
テンプレートを使えば、すぐに開発を始められます。
2つのテンプレートを用意しました:
| テンプレート | 用途 | 含まれるもの |
|---|---|---|
| miz-template | データサイエンス・機械学習 | CLAUDE.md, pyproject.toml, data/, notebooks/ など |
| tex_template | LaTeX論文執筆(Overleaf対応) | main.tex, reference.bib, figures/ など |
【練習】テンプレートをGitHubにpushする
Gitの練習として、テンプレートを使って自分のリポジトリを作成してみましょう。
テンプレートは初期状態(.gitなし)なので、自分でgit initから始めます。
Step 1: GitHubで空のリポジトリを作成
- https://github.com にログイン
- 右上の「+」→「New repository」
- Repository name:
my-first-project(好きな名前でOK) - Initialize this repository with: のチェックはすべて外す(空のまま)
- 「Create repository」をクリック
Step 2: テンプレートを展開
WSL内で作業します:
# 作業ディレクトリに移動
cd ~/research
# テンプレートZIPをコピー(Windowsからアクセス)
# ※ パスは自分の環境に合わせて変更してください
cp /mnt/c/Users/あなたのユーザー名/... ./miz-template-main.zip
# 展開
unzip miz-template-main.zip
# フォルダ名を変更
mv miz-template-main my-first-project
# プロジェクトに移動
cd my-first-project
Step 3: Gitリポジトリを初期化
# Gitリポジトリとして初期化
git init
# 全ファイルをステージング
git add .
# 最初のコミット
git commit -m "Initial commit: プロジェクトテンプレートを追加"
Step 4: GitHubにpush
# リモートリポジトリを追加(URLは自分のものに変更)
git remote add origin git@github.com:あなたのユーザー名/my-first-project.git
# mainブランチとしてpush
git push -u origin main
Step 5: 確認
GitHubのリポジトリページを更新して、ファイルがアップロードされていれば成功です!
【tex_template】LaTeX/Overleaf用テンプレート
論文執筆用のLaTeXテンプレートです。同じ手順でpushできます。
# 展開
unzip tex_template-main.zip
mv tex_template-main my-paper
cd my-paper
# Gitリポジトリを初期化してpush
git init
git add .
git commit -m "Initial commit: LaTeXテンプレートを追加"
git remote add origin git@github.com:あなたのユーザー名/my-paper.git
git push -u origin main
Overleafで使う場合:
- Overleafにログイン
- 「New Project」→「Import from GitHub」
- 先ほど作成したリポジトリを選択
テンプレートの構成(miz-template)
my-first-project/
├── .claude/ # Claude Code用ルール
│ └── rules/
├── CLAUDE.md # プロジェクト設定(Claudeが読む)
├── data/
│ ├── raw/ # 生データ(編集禁止)
│ ├── interim/ # 中間データ
│ ├── processed/ # 処理済みデータ
│ └── result/ # 結果
├── models/ # 学習済みモデル
├── module/ # 自作モジュール
├── notebooks/ # Jupyter Notebook
├── outputs/ # 出力ファイル
├── reference/ # 参考資料
├── scripts/ # 実行スクリプト
└── pyproject.toml # 依存関係(uv用)
Troubleshooting
よくあるエラーと対処法
1. 「docker: permission denied」エラー
# dockerグループに追加されているか確認
groups
# 追加されていない場合
sudo usermod -aG docker $USER
# WSLを再起動
exit
# PowerShellで: wsl --shutdown
2. 「Cannot connect to the Docker daemon」エラー
# Dockerサービスが起動しているか確認
sudo service docker status
# 起動していない場合
sudo service docker start
3. WSLでメモリ不足
Windowsの %UserProfile%\.wslconfig ファイルを作成/編集:
[wsl2]
memory=8GB
swap=4GB
その後WSLを再起動:
wsl --shutdown
4. SSH接続でPermission denied
# SSH鍵のパーミッションを確認
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
🎓 次のステップ:marimoでデータ分析
環境構築が完了したら、marimo を使ってデータ分析を始めましょう!
marimoとは?
marimo は、Pythonで書ける次世代のノートブックです。
Jupyter Notebookと違い、純粋なPythonファイル(.py) として保存されるため、Gitで管理しやすく、Claude Codeとの相性も抜群です。
| 特徴 | Jupyter | marimo |
|---|---|---|
| ファイル形式 | .ipynb (JSON) | .py (Python) |
| Git管理 | 差分が見にくい | 差分が見やすい |
| 実行順序 | 手動 | 自動(リアクティブ) |
| VSCode対応 | 別途拡張機能 | 公式拡張機能あり |
Step 1: marimoをインストール
# 仮想環境を有効化してから
source .venv/bin/activate
# marimoをインストール
uv add marimo
Step 2: VSCode拡張機能をインストール
- VSCodeを開く
- 拡張機能(Ctrl+Shift+X)を開く
- 「marimo」で検索
- 「marimo - Edit reactive notebooks in VSCode」をインストール
Step 3: marimoノートブックを作成
# 新しいノートブックを作成
marimo edit notebooks/my_analysis.py
ブラウザでmarimoが開きますが、VSCodeで編集したい場合は以下の手順で:
- 作成された
notebooks/my_analysis.pyをVSCodeで開く - 右上の「Open in marimo」ボタンをクリック
- VSCode内でmarimoエディタが起動
Step 4: サンプルコード(CSVデータの分析)
以下は、CSVファイルを読み込んで分析するサンプルです。
自分のCSVファイルを使って試してみましょう!
import marimo
__generated_with = "0.18.4"
app = marimo.App(width="medium")
@app.cell
def _():
import marimo as mo
return (mo,)
@app.cell
def _():
import pandas as pd
import numpy as np
return (pd, np)
@app.cell
def _(mo):
mo.md("""
# My Data Analysis
CSVファイルを読み込んで可視化します。
""")
return
@app.cell
def _(pd):
# CSVファイルのパスを自分のものに変更してください
DATA_PATH = "/workspace/data/raw/your_data.csv"
df = pd.read_csv(DATA_PATH)
df
return (df,)
@app.cell
def _(df):
# データの基本情報
df.info()
return
@app.cell
def _(df):
# 統計情報
df.describe()
return
if __name__ == "__main__":
app.run()
Step 5: Claude Codeでさらに分析を深める
marimoとClaude Codeを組み合わせると、AIと対話しながら分析を進められます。
# プロジェクトディレクトリでClaude Codeを起動
claude
Claude Codeに聞いてみよう:
> @notebooks/my_analysis.py を見て、次にどんな分析をすべきか提案して
> このデータから異常値を検出するコードを追加して
> グラフをもっと見やすくして、論文に使えるようにして
marimoファイルは純粋なPythonなので、Claude Codeが直接編集できます!
marimoのよく使うコマンド
# 既存のノートブックを開く
marimo edit notebooks/my_analysis.py
# ノートブックを実行(表示のみ)
marimo run notebooks/my_analysis.py
# Jupyter形式に変換
marimo convert notebooks/my_analysis.py -o notebooks/my_analysis.ipynb
# ブラウザで開かずVSCodeのみで使う場合
# → VSCodeでファイルを開いて拡張機能から起動
🎉 お疲れ様でした!環境構築完了です!
何か問題があれば、Claude Codeに聞いてみてください。
このガイドを読ませれば、文脈を理解して助けてくれます。