oTreeで作った実験をサーバーへアップして動かす

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

オンライン経済実験ツールoTreeで作った実験をサーバーにアップして、データをとることができたのでまとめておきます。※Windowsです。
oTree Hubを使う方法と、使わない方法の二つを紹介します。
実験全体ができていて、otree devserverで確認ができていて、あとは外部からアクセスして使えるようにしたいだけの状況を想定しています。

参考記事: https://www.accountingexperiments.com/post/server-deployment/

大事なこと

最初にoTreeのバージョンを最新に、PythonのバージョンもoTreeで使える限界まで新しくすることです。
Version 2のまましようとしたら、必要なファイルが生成されずにエラーが出まくって大変でした。

Herokuへの登録 & インストール

下で紹介する二つの方法では、どちらもHerokuが必要です。

https://dashboard.heroku.com/apps からHerokuに登録。
登録はメールアドレス入力してパスワード決めるだけ

登録できたら、https://devcenter.heroku.com/ja/articles/heroku-cli からHerokuをインストール。
特に何もチェックを付けたり外したりせずそのままインストールしました。

コマンドプロンプトを開いて、heroku --version
でバージョン情報が出てきたら、ちゃんとインストールできてます。

方法1: oTree Hubを使う

oTree Hubに登録

おそらく楽で簡単な方法だと思います。
まずは下のURLから登録します。
https://www.otreehub.com/home/

ログインするとこのような画面が出てきます。

Heroku server deploymentをクリックします。

ちなみに、oTree Studioでは、コードを書くことなく簡単な実験を作れるみたいです。また、Public projectsをクリックするとデモ的なのが出てきます。

Herokuにクレジットカード情報を登録

Heroku自体は無料でも使えますが、oTree Hubを使うにはクレジットカード情報をHerokuに登録しておく必要があるようです。
いきなりクレジットカード情報を登録するのに抵抗がある方は方法2を。

oTree Hubに実験をアップする

コマンドプロンプトで、cd 〇〇 でoTreeアプリケーションがあるディレクトリに移動します。
otree zip を実行するとzipファイルができます。
できたzipファイルをoTree Hubにアップします。

方法2: Git Hubを使う

GitHubへの登録 & インストール

アカウントを持っていない場合、GitHibに登録します。
https://github.co.jp/

インストーラーを開いて、インストールします。
https://git-for-windows.github.io/

Herokuでアプリケーションを作る

Herokuにログインして、アプリケーションを作ります。

regionはUnited Statesで、pipelineは特に設定せずにCreate appを押しました。

アプリケーションを作ると、下の画面が開きます。

Deployタブに書いてあるままののコードを、インストールしたGit GUIで実行します。

Git CMDでの操作

インストールしたGit CMDを開きます。

heroku login  #herokuにログイン
cd my-project/ #oTreeのプロジェクトのあるディレクトリに移動
git init
heroku git:remote -a mizunoexperiment1 #mizunoexperiment1部分にHerokuで作ったアプリケーション名を入力
git add .
git commit -am "make it better"
git push heroku master

このあと、
heroku open
heroku run "otree resetdb"
を実行します。

この画面が出てきたら成功です。

Debug infoを消す

ここまでできても、そのまま実験を開くと、画面下部にデバッグ情報が出てきます。

環境変数OTREE_PRODUCTIONに何もセットされていない状態だとDebug info が出ます。そのため、Git CMDを開いてoTreeのプロジェクトのあるディレクトリに移動し、以下のコードを実行します。

heroku config:set OTREE_PRODUCTION=1

※もう一回Debug infoを出したいときは
heroku config:unset OTREE_PRODUCTION
を実行します。

実験の実施

今回の研究ではクラウドソーシングで参加者を募集するのではなく学生の参加者に時間になったらメールでリンクを送って実施しました。

sessionを作る

Herokuのアプリケーションを開いて、Sessions → Create new session

Models.pyで設定したプレイヤー数の倍数の人数であれば同時に実験できます。

Createをクリックすると参加者に配る用のリンクができます。

おまけ1: どこまで無料枠でいけるか?

先程も書いたように、Herokuはある程度まで無料で使えます。
私の今回の研究ではアプリケーション4つ繋ぎ×約120人の実験プロジェクトのデータが無料でできました。
が、実験が終わった位のときに、
The database contains 7,643 rows. The Hobby-dev plan allows a maximum of 10,000 rows.
というメールが送られてきました。。
10000行を超えそうなときは、課金したほうがいいかもしれません。

おまけ2 : 出したエラー

Your database is not ready

heroku open で出ました。
> Your database is not ready. Try resetting the database (Missing tables for otree.Session, sessions.Session, otree.UndefinedFormModel, and 21 other models).

heroku run "otree resetdb" を実行したら解決しました。
ちなみに、otree devserverで同じエラーが出たときには単にotree resetdbを実行すれば解決します。

failed to push some refs to ‘https://git.heroku.com/アプリケーション名’

デプロイしようとしたら出ました。
git add . のし忘れが原因でした。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

コメントを残す

*