【第3回】 2022年5月26日

VS Code の導入 ・ oTree プログラミングの概要

VS Code の導入

  • 勉強会当日にVS Codeの拡張機能のインストールをやってみましたが,少々グダついたので,該当部分を撮り直して差し替えています.

  • 「VSCodeのターミナルは通常のターミナルと同じことができるのか?」という質問をいただきました.

    • 同じシェル(たとえばWSLのUbuntuのbash)に接続している限り,VSCode内蔵のターミナルはOSのターミナルと同じことができる.
    • 接続しているシェル(WindowsならPowerShellかコマンドプロンプトかWSLのbash,Macならzshかbashか...)が異なれば,操作,挙動も変わる.
    • 自分で設定しない限り,WSLのbashにVSCode内蔵のターミナルで接続したときに ~/.bash_profile~/.profile が読み込まれない( ~/.bashrc は読み込まれる).そのため,環境変数などの設定を ~/.bashrc ではなく ~/.bash_profile にしか書いていない場合,その設定が無いままシェルを動かしていることになるため挙動が変わる. oTree の環境変数の設定に注意.
    • ターミナルの機能(フォントの設定やショートカット)は,VSCode内蔵のターミナルでは(同様の設定をしない限り)使えない.
    • 「シェル」と「ターミナル」は全く異なる概念.だが(特にWindowsの場合は一体として扱われることが多いため)混同しやすい.

どのテキストエディタを使うべきか?

  • 結論: 好きなものを使う.状況に応じて使い分ける.

  • 「VS Code と PyCharm,どちらが良いか?」という質問をいただきました.

    • 私はPyCharmを使ったことがないので分かりません.
    • Webで検索すると,賛否両論のようです.
      • VS Code の方が軽量?
      • PyCharmはPython特化なので oTree プログラミングにおいては有用?
  • VSCodeが良いな,と思うところ... (拡張機能が豊富なおかげで)いろいろな言語での開発が便利:

    • Jupyter Notebook(ブラウザで作業するのではなく)
    • LaTeX(VSCodeで生成したPDFをプレビューできる)
    • markdown(VSCodeでプレビューできる)
  • 専用のエディタを使った方が良い場合も

    • R は RStudio (VS Codeでもある程度似たことはできるが)
    • Wolfram Engine は無料で使えるようになったが,やはり課金してMathematicaを使う方が便利
  • 今どきはクラウドで作業することも多い:

    • LaTeX は Overleaf
    • Python (Jupyter) は Google Colaboratory
  • おせっかい機能が不要であれば,よりシンプルなエディタを使うのが良い

  • Windows標準の「メモ帳」を使うときは要注意!

    • (最近は改善されたようですが)文字コード,改行コードの扱いが不親切.
  • 「エディタ戦争」

シェルで使用する oTree サブコマンド

サブコマンド

startprojectstartapp コマンドで生成されるもの

以下のディレクトリ・ファイルは oTree を動かすために最低限必要なもの.ただし, Procfilerequirements.txt は Heroku にデプロイするために必要なものであり, Heroku を使わないのであれば不要.

  • settings.py

  • requirements.txt

    • pipで導入するパッケージを列挙する.
    • Herokuを使うときに必要なファイル.
    • デフォルト( oTree v5.8.4)の記述内容:
      # oTree-may-overwrite-this-file
      # IF YOU MODIFY THIS FILE, remove these comments.
      # otherwise, oTree will automatically overwrite it.
      otree==5.8.4
      psycopg2>=2.8.4
      sentry-sdk>=0.7.9
      
    • ↑ コメントアウト中にも書かれているとおり,「oTree-may-overwrite-this-file」の文字列があると, oTree が勝手に requirements.txt を書き換えるため,自分でライブラリのバージョンを固定したり別のライブラリを追加したりする場合は注意する.
    • 他人から oTree プロジェクトのファイルをもらったときに,その人と同じパッケージを入れるには,以下のようにpipを使う.
      pip install -r requirements.txt
      
  • Procfile

    • Heroku用の設定ファイル.
    • 拡張子はないが単なるテキストファイル.
    • デフォルト( oTree v5.8.4 )の記述内容:
      web: otree prodserver1of2
      worker: otree prodserver2of2
      
    • ↑ 2行目のworker dynoのコマンドは不要だと思われる.
  • _static ディレクトリ

    • 画像ファイルやCSSファイル,JSファイルを置いておく.
  • _templates ディレクトリ

    • 複数アプリ使い回すHTMLテンプレートを置いておく.
  • 各アプリのディレクトリ

    • __init__.py
    • *.html

oTree のデータモデル

管理者画面

  • Demo
  • Sessions
  • Rooms
  • Data
  • Server Check
  • 一つの実験セッションの中で
    • Links
    • Monitor
    • Data
    • Payments
    • Description
    • Edit

results matching ""

    No results matching ""