【初心者向け】oTree を自分のPCで動かす！【Windows 編】


## 1. はじめに

東京大学で社会心理学の研究をしている M2 の[髙橋龍](https://ryu-thakahashi.github.io/)と申します．

この記事では，oTree （社会実験の実験プログラム作成に便利なツール）を自分のPCで動かすための環境構築の手順を紹介しています．

### 1-1. oTree とは？
一言でいうと，[oTree](https://www.otree.org/) は，オンライン実験を手軽にできるようにした，とっても便利な Python ライブラリ（便利な機能集）です．

### 1-2. 必要なツールと環境
今回の記事では，以下のツールを使います．

1. **Python**  
   - oTree を動かすために必要なプログラミング言語です．
2. **PowerShell**  
    - 黒い画面のコマンドプロンプト（プログラマーがよく使うかっこいいやつ）です．
3. **scoop**  
   - Windows 用のパッケージマネージャー（AppStore みたいなやつ）です．  
4. **uv**  
   - 誰でも正確，かつ簡単に　oTree を動かすために必要なやつです．


## 2. scoop のインストール

### 2-1. scoop とは？
[scoop](https://scoop.sh/) は，Windows のプログラマー向け App store みたいなやつ（macOS で言う `Homebrew` ）です．

### 2-2. scoop のインストール方法
1. PowerShell を起動します（Windows キーを押して，shell と入力し，Enter キーを押す）．  
2. 以下のコマンドをコピペして Enter キーを押します．

```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop install git pipx uv vscode-insiders
scoop bucket add extras
scoop update

```

詳しい手順は[【scoop】絶対にエラーなく最速で R と Rstudio を Windows にインストールする方法 #環境構築 - Qiita](https://qiita.com/ryu-takahashi2718/items/04702ac364821fc0e92d) を参照してください．

### 2-3. インストールされているかの確認

以下のような画面になって，`Scoop was updated successfully!` と表示されればインストール成功です．

![1740037112589.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726043/dbed6278-0f5f-415c-89b7-d18b3756f97c.png)


## 3. uv のインストール

### 3-1. uv とは？
この記事では，oTree の開発環境の準備を簡単にするために， `uv` という便利なツールを使います．こちらも AppStore みたいなやつです．

### 3-2. インストール方法

実は，先ほどのコマンドですでにインストール済み．

### 3-3. インストールされているかの確認
以下のコマンドでバージョン情報が表示されればインストール成功です．

```powershell
uv --version
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726043/9ac61de9-7c2b-4847-8825-7520cf4463ea.png)


## 4. oTree のインストール

oTree の説明はさっきしたので，早速インストールしていきましょう．

### 4-1. インストール方法

1. 以下のコマンドを Power Shell にコピペする

```powershell
pipx install -U otree==5.11.1

```

（pipx を scoop で先にインストールすることで，pip のインストールを個別でやらなくてもいいようにしました．）

### 4-3. インストールされているかの確認
```powershell
otree --version
```

を実行すると，バージョン情報やインストール先が表示されます．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726043/1843957a-a26a-4fb0-87e0-c6df459fe9df.png)


これで oTree の導入は完了です！


## 5. oTree プロジェクトの準備

### 5-1. テンプレートとは？

筆者が作成した，初心者でも手軽に始めるための[テンプレート](https://github.com/ryu-thakahashi/otree-template)です．これを使えば，あらかじめ設定済みの構成でスムーズに始められます！

（oTree は `startproject` コマンドなどでプロジェクトを初期化することもできます）

### 5-2. テンプレートをインストール



1. PowerShell 上で，書き換えても困らないフォルダに移動します．例：

   ```powershell
   cd C:\Users\[PowerShell に表示されている名前]\Documents
   ```


2. 以下のコマンドをコピーして，PowerShell に貼り付けてください．

   ```powershell
   git clone https://github.com/ryu-thakahashi/otree-template.git
   cd otree-template
   uv sync
   ```

こんな感じの画面になればOKです！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726043/946c6e61-58ea-475f-b98d-715a534f1c82.png)


### 5-3. インストールされているかの確認
テンプレート内には `settings.py` や `simple_pd` ディレクトリなどが色々入っています．フォルダ構成が以下のようになっていれば OK です（一例）．

```
otree-template/
  ├─ __init__.py
  ├─ settings.py
  ├─ simple_pd/
  │   ├─ __init__.py
  │   ├─ models.py
  │   ├─ pages.py
  │   ├─ tests.py
  ...
  └─ ...
```

これで，oTree のプロジェクトの準備が整いました！

---

## 6. oTree の起動と動作確認

### 6-1. ローカルサーバーを起動する
1. 先ほどの `otree-template` フォルダ内にいることを確認してください．例：

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726043/95b4c034-e498-4e03-b6a5-4b9f79876e8a.png)


2. oTree を起動します:
   ```powershell
   otree devserver
   ```

しばらく待つと，こんな感じのメッセージが表示されるはずです．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726043/a9546ba3-fa36-49d4-a95e-94a02c18ec17.png)

それではいよいよ，oTree にアクセスしてみましょう！

### 6-2. ブラウザで確認する
1. お使いのブラウザ（Chrome や Edge など）を開いてください．
1. 次の URL をアドレス欄に貼り付け，アクセスしてください．

   ```
   http://localhost:8000/
   ```
2. oTree の初期画面（下の画像）が表示されれば，インストール成功です！

![1740038154047.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2726043/b35184d4-be77-4ef9-b4bf-6a5ff2bc7617.png)

おめでとうございます！！お疲れ様でした！

## 7. よくあるトラブルと対処法

### 7-1. scoop のインストールに失敗する
- **症状**: 「スクリプトがブロックされました」とエラーが出る  
  **対処**: PowerShell を管理者モードで開き，`Set-ExecutionPolicy RemoteSigned -Scope CurrentUser` を実行してください．その後，通常モードの PowerShell で再度試してください．

### 7-2. uv のコマンドが見つからない
- **症状**: `uv : 用語 'uv' は認識されません．` などと表示される  
  **対処**: 
  1. scoop が正しくインストールされているか確認 (`scoop --version`)  
  2. 再度 `scoop install uv` を実行  
  3. PowerShell を再起動してパスが通っているか確認

### 7-3. oTree の起動でエラーが出る
- **症状**: `ModuleNotFoundError` や `django.core.exceptions.ImproperlyConfigured` などが表示される  
  **対処**: 
  1. 仮想環境がアクティブになっているか確認 (`uv activate myenv`)  
  2. `pip install otree` の打ち忘れやタイポがないか確認  
  3. テンプレートプロジェクトのディレクトリに移動しているか確認

### 7-4. ポートが使用中でサーバーが立ち上がらない
- **症状**: `Address already in use` というエラー  
  **対処**: 既に 8000 番ポートが別のプロセスで使われている可能性があります．ほかのアプリケーションを終了させるか，別のポートで起動する（例：`otree devserver --port=8001`）などの対処を行いましょう．


# まとめ

以上が，Windows 環境で初心者が oTree を動かせるようになるまでの基本的な流れです．

1. **scoop** を使ってサクッと環境構築を簡単にする  
2. **uv** で仮想環境を手軽に扱う  
3. **oTree** をインストールし，テンプレートからスタートプロジェクトを作成  
4. ローカルでサーバーを起動して実験タスクを確認  

この記事の手順どおり進めれば，最小限のコマンドで oTree を体験できるはずです．もし途中でエラーやつまずきがあっても，上記のトラブルシューティングや公式ドキュメントを参考にしつつチャレンジしてみてください．  

これで Windows でも oTree の開発・動作確認ができるようになります．お疲れさまでした！

## 謝辞

この記事は，筆者が目次を作成し， ChatGPT の 4o に目次構成についてフィードバックをいただいた後， o1 に目次をもとにして原稿の執筆をしてもらい，その原稿を筆者が修正することで完成しました．ChatGPT さん，いつもありがとうございます．