まえがき
- CoderばっかでBuilderをあまり使わない人向け。
- あるいは、コードで実験組んでみたいけど開発環境揃えるのが面倒な人向け。
- インストール手順はMac準拠ですがWindowsも似たようなもんです。
ライブラリとしてのPsychoPyは非常に完成度が高く、PygletやPygameやKivyより数段使いやすいですが、一方、IDEとしてのPsychoPyは、補完もデバッグも弱くて微妙です。
昔はVimでスクリプトを編集していたのですが、ここ最近PsychoPyはJupyterと非常に相性が良いことに気づきました。
ので、今回はJupyterでPsychoPyが使えるようになるまでを説明します。
...の前に、まずは実際どのくらい便利なのか紹介します。
ギャラリー
もちろん起動可能。
Hello Worldしたい?...なら後から書き加えれば良いじゃない。
おっと白地に黒文字にしたいんだった。win.close()でページを閉じて…あれ、visual.Windowの色設定って何だったっけ。
作り直して、再呈示。
...こんな感じで、対話的に実験を作成することができます。
環境作成
Anacondaのインストール
後々分析することも考えて**Anaconda**を使いましょう。インストールはこちらから。
2系と3系がありますが、ここでは3系を入れることにします1。理由は以下の通りです。
- 3系を入れても後述する設定で問題なく2系Python環境を使うことができる
- PsychoPy以外で3系に対応していないライブラリはもはやほとんど存在しない
- そのPsychoPyも3系に移行しようとしている
- 2系のサポートは2020年に打ち切られる
またAnacondaではなくMinicondaをインストールするのも良いかと思います。理由は以下の通りです。
- Anacondaは容量を食う (平気で2桁GBとか使う)
- Anacondaの導入は、curlのパスが隠されてしまうなどの地味に辛い副作用を伴う
ただしMinicondaを使う場合、ライブラリ (numpyやpandas等) を自力で入れる必要があることに注意してください。
Jupyter Notebookの動作確認
Anacondaのインストールが完了したら、まずは、Jupyter Notebookが起動することを確認しましょう。ターミナル (Winの場合はAnaconda Prompt) を開いて以下を実行します。
jupyter notebook
ブラウザが立ち上がり localhost:8888
が自動で表示されれば成功です。
なお、Jupyter Notebookを使っている間は、ここで開いたターミナルやAnaconda Promptを消さないでください。消すとサーバーが止まってしまいます。逆にもう使わない場合は閉じて構いません。
PsychoPyのインストール
Anaconda Promptを開き (Windowsユーザーは管理者として実行してください)、以下を実行します。
pip install psychopy
インストールが終わったら、ノートブックから以下を実行してみてください。
from psychopy import visual
win = visual.Window()
ウィンドウが起動するはずです。
なお、Windowsの場合は NotImplementedError
が出る可能性があります。その場合もう一度管理者権限でAnaconda Promptを開き、
pip install pyglet==1.2
を実行してみてください (デフォルトで入るバージョン1.3ではうまくいかないのでバージョンを下げています)。
補足
visual.Windowの挙動
fullscr=Falseで作成したスクリーンをドラッグドロップしようとすると応答なしになる場合があります。特に問題があるわけではなく、刺激もちゃんと呈示されるので、そのまま実験作成を進めて大丈夫です。
実行速度計測
%timeや%timeitで。
刺激呈示が遅いな―ってときにどうぞ。
%2コにするとそのブロック全体の実行時間を計測します。
Rとの連携
もし、Jupyter NotebookでRを使いたいのであれば、
https://irkernel.github.io/installation/
を参考にRを入れましょう。Rを開いて
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest'))
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()
を以下に注意して実行すれば、自動的にJupyter Notebookと連携されます。
[注意点 (Win)]
- Rは管理者権限で起動すること
-
https://cran.ism.ac.jp/ からRtoolsを予めインストールしておくこと
(windowsでは、devtoolsをinstall.packageで入れられないはずなので)
もしIRKernel::installspec()
でコケる場合、以下の対策が有効かもしれません。
-
IRKernel::installspec()
だけはAnaconda Promptから起動したRで実行する - Anaconda PromptからRを起動できない場合は、環境変数「Path」にRへのパスを通す
- デフォルトだとRへのパスは
C:\Program Files\R\R-X.X.X\bin\R.exe
など
- デフォルトだとRへのパスは
[注意点 (Mac)]
- Rはターミナルから起動すること
-
この記事も2018年1月までは2系3系両対応にしていました。今は2系を入れるメリットがほぼ無いため、3系の導入方法のみ紹介するよう修正しました。 ↩