1. Python 及 oTree 基础概念与安装 https://otree.xindamate.xyz/?p=99
  2. oTree 基础 https://otree.xindamate.xyz/?p=133
  3. 程序编写与调试

目标

  • 了解python和oTree以及它们背后的一些编程概念,便于更好读懂官方文档
  • 学会基础的oTree编程,包括后端的python以及前端可能涉及的HTML+CSS+JavaScript语言
  • 基础的oTree实验运行及管理

文件说明

  • doc:Linux系统的服务器架设方式和中文翻译的旧版本的官方文档(md格式)
  • firstexp和sample_exp:oTree程序,firstexp和下面的讲解对应,sample_exp是官方的简单示例程序
  • pypro:otree2stata和otree2data以及数据CSV

1. Python 和 oTree 基础概念及安装

oTree在更新到5版本之后,作者推荐使用的编写方式是由oTree官方自己提供的oTree studio平台,通过点击拖拽等方式写代码。因为个人没怎么用过oTree studio,所以不介绍oTree studio的使用。个人感觉虽然oTree studio比较简单但可能损失了很多灵活性,而在自己电脑上一步步写出来虽然有一点难度但能有更好的灵活性,从学习oTree的角度讲也能更有体会更深入。本教程基于Win10系统进行,Mac OS在涉及安装、服务器架设或操作方面有差异,程序编写本身无明显差异。

1.1 python安装及相关的编程概念

python解释器(Interpreter):python是一种高级语言,计算机要理解高级语言必须要将其转换为0-1的机器语言,python解释器就是做这么一个事情。所谓安装python就是安装python解释器(python3.10/3.9/3.8是不同版本的解释器),解释器是将python代码解析/翻译为二进制机器语言的工具

安装:python官网即可下载,建议下载stable release的版本,且是windows installer格式的(目前最新的版本是3.10,保证版本在3.7以上),安装的时候记得勾选Add python to PATH(如下图例子),直接选择install now即可(选择customize installation修改安装路径的话记得所有安装内容都要勾选)

python安装PATH

注意:如果之前已经安装过python,需要确定一下系统的环境变量里面是否已经有python的路径了,可以在系统设置里面搜索“环境变量”打开(如下图),并参考如下步骤,正确添加进环境变量应该有两条是python的路径,比较建议只保留一个版本的python的路径。环境变量下的用户变量只对当前用户有效,系统变量对所有用户有效,一般自己用的电脑上只有一个用户,所以只要用户变量下面的Path有python路径即可,安装时给所有用户都安装的选项不必要

Environment Setting

集成开发环境(IDE,Integrated Development Environment):集成集成代码编辑器、编译器、调试器和图形用户界面等功能,可以提高编写代码的效率,python自带有IDLE,另外有Jupyter Notebook、Pycharm、Spyder(主要针对python)、VSCode(针对多种语言),这里比较推荐VSCode或Pycharm

安装:VSCode和Pycharm都可以直接在各自的官网下载,建议下载VSCode,下面的讲解也是基于VSCode:

  • VSCode:https://code.visualstudio.com/
  • Pycharm:https://www.jetbrains.com/pycharm/ ,下载免费的社区版(community)即可
  • Pycharm是早期的oTree文档中作为例子介绍的,这是因为早期的oTree实际上依赖于一个非常流行的开源web应用框架Django,而Pycharm本身对使用Django进行开发比较友好(对HTML+CSS+JavaScript等语言的支持),所以早期文档会以Pycharm为例子介绍,但是oTree更新到5版本之后已经不再依赖Django,而是转向使用自己的框架oTree Lite,一种和Django有点像但又不是Django的框架。安装pycharm时勾选下面这些内容:

Pycharm Installation

个人习惯使用VSCode,这也是本教程中使用的工具,可以安装很多针对不同语言的插件,但其实对使用oTree来说这些插件都不是必须的。安装VSCode时勾选下面这些内容:

VS Code Installation

安装插件的方法是在VSCode的界面左边菜单上选择“Extensions”(扩展),然后搜索相关的扩展进行安装,下面推荐几个个人使用比较好的插件:

  • Python:必装,微软官方提供的VSCode的python支持插件,安装的时候认准发布者是微软官方,安装这个插件也会自动安装Pylance、Jupyter等一系列python相关插件
  • Django、Django Template:虽然最新的oTree不是基于Django,但仍有类似之处,可以安装用于辅助
  • VSCode本身的设置:点击左下角齿轮→setting→新出现的页面上搜索“BracketPairColorization”并勾选(这个功能可以使成对的括号有相同的颜色)、搜索“Linked Editing”并勾选(这个功能可以使得在修改成对的标签时只要修改一个另一个也自动替换)
  • 关于VSCode的详细的使用介绍请参考官方文档或B站上的一些教程

包管理工具:python安装时自带包安装和管理器pip,这是python的一个可以在python的包仓库Python Package Index(PyPI)里面下载各种python的包的工具,oTree安装将使用到这个工具。这个工具的作用有点类似于stata下载包时用的ssc install命令。pip在下载包的时候会递归地找到正在下载的包所依赖的其他包并一起下载

关于python及相关安装的内容,还可以进一步参考的一些教程:

2. oTree的安装及相关材料

oTree是一个开源的Python框架,用于在实验经济学中设计、开发和进行在线实验。它提供了一个简单的方式来创建各种类型的实验,包括博弈论、行为经济学和社会科学实验。

注:直接采用下面的安装方法是全局安装了oTree,如果想要避免python不同的包之间相互干扰,可以先建立虚拟环境再安装,关于什么是虚拟环境以及虚拟环境如何使用,参考以下两个说明:

oTree的安装:根据oTree官方文档的说明,在命令行/命令提示符/cmd/终端中输入命令进行安装,首先win+R,输入cmd打开命令提示符,在打开的命令提示符窗口中输入以下命令:

pip install otree

等待安装完成即可,另外一些常用命令如下:

pip install -U otree #升级otree
pip uninstall #卸载某个包
pip help #列出pip相关命令

Path环境变量里面设定python路径的原因在此,这样将直接给该python安装上oTree包

安装完成后,同样在命令提示符窗口里面输入命令“pip show otree”可以列出otree的信息(最新的版本是5.10.3),命令“pip list”可以列出所有已安装的python包及相应版本

CMD Install oTree

PiP list command

学习和使用 oTree 的相关资料和网站

  • [oTree官方文档] (https://otree.readthedocs.io/en/latest/index.html)
    • 提供对oTree的详细介绍和说明,在实际写程序的时候很多情况下需要开着官方文档搜索相关内容
    • 有中文版的文档,还是建议看英文的
    • 重要章节:Conceptual Overview、Models、Pages、Templates、Forms
  • oTree Hub
    • 官方支持的网站,包含论坛、用户公开代码、Chris整理的一些重要的示例代码等内容,注册使用
    • Forum:官方论坛,可以post自己遇到的问题寻求帮助,推荐在这个官方论坛上问问题,也可以订阅邮件更新,Forum页面拉到最底下勾选通过邮件接收更新即可.
    • Public projects/Featured:用户分享的自己的程序代码,提供了可以运行测试的Demo、直接在网页上打开浏览的源码(Browse source code)以及代码下载(Download),Featured里面则是由Chris本人整理过的一些非常有用的代码片段或小功能,其中otree-snippets这个内容是Chris本人亲自写的,提供了很多使用例子。了解了oTree的基础内容之后,后续的学习和应用很多都是通过看和理解别人的代码完成的
  • oTree collection
    • Christian整理的一些重要的oTree程序、实现某个功能的代码片段和工具。和hub里面的相比较主要差异是这些程序很多都是完整的高度集成的实验程序,一个程序里包含了许多不同的实验任务,程序大部分放在Git Hub上,这也说明其实可以去Git Hub上搜oTree,可以找到别人分享的代码。
    • 优点是提供了完整的实验程序,缺点是很多程序的写法是旧版本的otree代码,有一些功能在新版本中可能不支持,另外就是不那么容易看懂这些代码,需要比较多的python语言和前端语言的积累
    • oTree官方的Github仓库: 有官方的示例程序和文档
    • oTree的论文,需要引用:Chen, D. L., Schonger, M., & Wickens, C. (2016). oTree—An open-source platform for laboratory, online, and field experiments. Journal of Behavioral and Experimental Finance, 9, 88-97.
    • (参考了解)oTree在oTree 5之前用的框架是Django,Django是一个由python编写的开源的web应用框架,由于Django框架本身已经提供或者说带有一些成熟的已经编写好的类或组件(比如表单、上传文件、滑块、评分等等功能要用到的组件),因此在这个框架基础之上进行开发无需重复造轮子,可以直接使用这些类或组件。简单来说,Django这个框架是用于服务器后端的,承担了数据库管理、数据交互等等功能,完成这些功能使用的编程语言是python,在前端(html文件)部分Django也有自己的html模板写法。现在oTree在构建前端页面的时候使用的框架是流行的Bootstrap。

原文地址: https://github.com/MarvinLuoGS/otree-crash-tutorial 和 https://slides-otree-tutorial.netlify.app/1 感谢 罗干松 (ZJU) 范徐航(Duke) 同学,如果内容涉及侵权,告知我后会立即删除。

Categories:

Tags:

No responses yet

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注