備份自:http://rainy.im/posts/2015/01/08/PTB-3-installation-and-trouble-shooting.html
Psychtoolbox-3(PTB-3) 是一組 Matlab(或 Octave)的工具包,主要用來編寫心理學實驗程序,之前的版本是 2,PTB-3 是在原先 2 的基礎上通過重寫一些 Matlab 相關的 C 擴展以更好地與 OpenGL 交互,代碼也開源托管在 GitHub 上,可以非常方便地下載、安裝不同的開發版本,遇到問題也可以與作者直接交流(如果作者原意理你的話:P)。
安裝 PTB-3 首先需要安裝 Matlab (如果沒有版權又不想使用盜版可以嘗試使用開源的替代方案 Octave),根據官網的文檔說明:
The current version supports Matlab 7.x and Octave 3.2.x on Mac OSX, Linux and Windows.
國內用 Linux 做心理學研究的應該還比較少,大多數應該還是使用 Windows 系統,我分別嘗試了在 Windows XP 系統的 Matlab 09b、Mac OSX 系統的 Octave 3.8.2 和 Matlab 14b 上安裝 PTB-3 并運行了簡單的 Demo,記錄了一些安裝過程中可能遇到的坑及解決方法。
2. 系統與軟、硬件要求
PTB-3 到目前為止最新的穩定版本為 3.0.12,從官網提供的 System Requirements 文檔中可以查看詳細的系統與軟、硬件需求,總體來說基本的趨勢如下:
- 向后兼容32位的 Matlab 及操作系統但最新的 3.0.12 及以后的版本將不再支持32位,因此以我們實驗室的機器來看最多只能用 3.0.11 :(;
- Matlab 與 Octave 基本上最新的版本不太會有問題,老的版本如果有問題安裝出錯會有提示;
- 操作系統 Windows 主流的 XP、Win7 應該沒有問題,最新升級的 Mac OSX 10.10 將布滿了坑;
- 其它硬件需求包括顯卡、聲卡基本上不是太老的機器都不會有問題,不過可能存在某些硬件驅動未安裝的情況也會在安裝過程中報錯提示。
3. 下載安裝
安裝之前首先判斷是否已經安裝過舊的版本,在 Matlab 中輸入
:::matlab
>> PsychtoolboxVersion
ans =
3.0.12 - Flavor: - Corresponds to SVN Revision
For more info visit:
https://github.com/Psychtoolbox-3/Psychtoolbox-3
想要刪除舊的版本,需要找到舊版本的安裝路徑:
:::matlab
>> PsychtoolboxRoot
在 Matlab 中通過 pathtool
彈出搜索路徑管理界面,Remove 掉所有舊版本的 PTB 相關的目錄就可以了。Octave 也有類似的路徑管理命令,我用的最新版本可能是有 Bug ,rmpath
命令沒有達到移除的效果,可以通過編輯~/.octave
文件直接刪除掉里面與 PTB 相關的路徑。
下載與安裝新版本有兩中方式,一種是下載官方提供的 DownloadPsychtoolbox.m,并在 Matlab 中運行,則可以自動下載安裝。
鑒于我們的網絡狀況我一般會用第二種方式,先去 GitHub 下載 Zip 壓縮包,然后在本地安裝(官網有提供最新的 Zip File 下載鏈接,如果想要其它版本則需要去 GitHub 選擇下載),選擇不同版本的下載方式如下:

下載說明
解壓縮之后通過 Matlab 進入到解壓后的目錄中的 Psychtoolbox 子目錄,執行:
:::matlab
>> cd /path/to/Psychtoolbox-3-PTB_Beta-2014-11-06_V3.0.12/Psychtoolbox
>> SetupPsychtoolbox
如果沒有終止或報錯,可以看到最后的 Enjoy!
,就說明安裝成功!
4. 可能遇到的問題與解決方法
除了版本兼容性等問題,最容易出現的錯誤如下:
----- ! PTB - ERROR: SYNCHRONIZATION FAILURE ! ----
至于具體原因或背后的原理以后再說,解決方法有提示通過help SyncTrouble
查看原因,(OSX系統中)一般與內核驅動有關,可以通過查看help PsychtoolboxKernelDriver
尋找解決方案:
:::bash
cd /System/Library/Extensions/
sudo unzip /PathToPsychtoolbox/Psychtoolbox/PsychHardware/PsychtoolboxKernelDriver64Bit.kext.zip
如果需要刪除舊的版本或升級則需要:
:::bash
sudo kextunload /System/Library/Extensions/PsychtoolboxKernelDriver.kext
sudo rm -R /System/Library/Extensions/PsychtoolboxKernelDriver.kext
另外 OSX 10.10 需要額外的步驟:
:::bash
sudo nvram boot-args="kext-dev-mode=1"
reboot