データサイエンス環境構築[windows]

初出: Qiita @humanbeans893

このガイドでは、Windowsでデータサイエンス・機械学習の開発環境を一から構築する方法を解説します。
各ステップで「なぜ必要か」「何が起きるか」を丁寧に説明しているので、コマンドを打ちながら進めてください。


📋 目次

  1. Claude Code(まずこれを入れよう!)
  2. WSL(Windows Subsystem for Linux)
  3. Docker
  4. GitHub
  5. UV(Pythonパッケージマネージャー)
  6. プロジェクトテンプレートの使い方
  7. トラブルシューティング

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を管理者として開く

  1. Windowsキーを押す
  2. 「PowerShell」と入力
  3. 「管理者として実行」をクリック

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アカウントを作成

  1. https://github.com にアクセス
  2. 「Sign up」をクリック
  3. メールアドレス、パスワード、ユーザー名を入力
  4. メール認証を完了

💡 ユーザー名のコツ:

  • 本名またはハンドルネームで覚えやすいもの
  • 将来のポートフォリオになるので、ふざけた名前は避ける

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に登録します:

  1. GitHubにログイン
  2. 右上のアイコン → Settings
  3. 左メニュー → SSH and GPG keys
  4. New SSH key をクリック
  5. Titleに「WSL」など分かりやすい名前を入力
  6. Keyにコピーした内容を貼り付け
  7. 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]
  1. ファイルを編集する
  2. git add で変更を「ステージング」に追加
  3. git commit で変更を「コミット」として記録
  4. git push でGitHubにアップロード

UV

UVとは?

UV は、Pythonのパッケージ管理と仮想環境を高速に扱えるツールです。
従来の pipvenv よりも 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で空のリポジトリを作成

  1. https://github.com にログイン
  2. 右上の「+」→「New repository」
  3. Repository name: my-first-project(好きな名前でOK)
  4. Initialize this repository with: のチェックはすべて外す(空のまま)
  5. 「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で使う場合:

  1. Overleafにログイン
  2. 「New Project」→「Import from GitHub」
  3. 先ほど作成したリポジトリを選択

テンプレートの構成(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拡張機能をインストール

  1. VSCodeを開く
  2. 拡張機能(Ctrl+Shift+X)を開く
  3. marimo」で検索
  4. marimo - Edit reactive notebooks in VSCode」をインストール

Step 3: marimoノートブックを作成

# 新しいノートブックを作成
marimo edit notebooks/my_analysis.py

ブラウザでmarimoが開きますが、VSCodeで編集したい場合は以下の手順で:

  1. 作成された notebooks/my_analysis.py をVSCodeで開く
  2. 右上の「Open in marimo」ボタンをクリック
  3. 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に聞いてみてください。
このガイドを読ませれば、文脈を理解して助けてくれます。