如何解决错误“ AttributeError:'pygame.Surface'对象没有属性'units'”?

时间:2019-06-16 05:35:16

标签: python pygame spyder psychopy

我对Python非常陌生(通常是编程)。我正在尝试显示gabor贴片和口罩。我已经复制粘贴了Dalmaijer的书(实验心理学家的Python)中的代码。但是,我总是收到归因错误。

import pygaze
from pygaze.display import Display
from pygaze.screen import Screen
import pygaze.libtime as timer
import numpy
from psychopy.visual import GratingStim
disp = Display()
gabor = GratingStim(pygaze.expdisplay, tex='sin', mask='gauss', sf=0.05, size=200)
gaborscreen = Screen()
gaborscreen.screen.append(gabor)
noise = (numpy.random.rand(64, 64) * 2) - 1
noisepatch = GratingStim(pygaze.expdisplay, tex='noise', mask='gauss', size=200)
noisescreen = Screen()
noisescreen.screen.append(noisepatch)
disp.fill(gaborscreen)
disp.show()
timer.pause(1000)
disp.fill(noisescreen)
disp.show()
timer.pause(2000)
disp.close()

这是我不断收到的错误:

 File "C:\Program Files (x86)\WPy64-3720\python-3.7.2.amd64\lib\site-packages\psychopy\visual\basevisual.py", line 1124, in units
   self.__dict__['units'] = self.win.units

AttributeError: 'pygame.Surface' object has no attribute 'units'

我该如何解决?

1 个答案:

答案 0 :(得分:-1)

从此在线来源:

http://forum.cogsci.nl/index.php?p=/discussion/2245/images-appearing-as-black-boxes-after-many-trials

  
    

我试图将后端从PsychoPy切换到xpyriment |     旧版,但是在后两个版本中,我立即得到AttributeError     'pygame.Surface对象没有属性'units'。

  
     

那是因为您直接使用PsychoPy代码,在这种情况下,   必须使用心理后端。但是您的代码中没有任何东西   使用OpenSesame的本机Python很难做到   独立于后端的库或Expyriment   需要xpyriment后端。

     

http://osdoc.cogsci.nl/3.1/manual/python/canvas   http://docs.expyriment.org/您是否有任何特定原因   需要PsychoPy?