我收到了这个错误:
AttributeError: 'Sound' object has no attribute 'get_raw'
尝试在Sound对象上使用get_raw()时。
如果我输入:
dir(pygame.mixer.Sound)
返回:
['__class__','__delattr__','__doc__','__format__','__getattribute__','__hash__','__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__','__sizeof__', '__str__', '__subclasshook__', 'fadeout', 'get_buffer', 'get_length', 'get_num_channels', 'get_volume', 'play', 'set_volume', 'stop']
我不知道如何解决这个问题。
答案 0 :(得分:1)
我愿意打赌您安装了1.9.1或更早版本的PyGame,因为大多数the pre-built binaries都是1.9.1或更早版本。
如果你查看get_raw
的文档,它会清楚地说:
pygame 1.9.2中的新功能。
如果您想使用仅限1.9.2的功能,您显然需要安装1.9.2。这意味着您无法使用官方预建的二进制文件。
有些平台有自己的二进制文件(可能是RPM或DEB包)或非官方二进制文件(如Christoph Gohlke的Windows存档)。
或者你总是可以自己构建和安装PyGame。 install docs目前似乎已被打破,但compilation docs涵盖了所有棘手的部分。真的,这并不是那么棘手;一旦你安装了所有的先决条件,通常[sudo] python setup.py install
- 或者更好,[sudo] pip install .
- 应该可以正常工作。 (如果你很幸运,pip install pygame
甚至可以工作,但只有1.9.2实际上已经发布。)
使用名为1.9.2a0的版本,听起来像是1.9.2的pre-alpha。并不保证您将获得所有1.9.2功能。如果还没有发布更新的版本......那么,除非你想使用尚未发布的开发版本,否则你不能在它们发布之前使用新功能。 (请注意,对于常见的Windows和Mac目标,它们已经自动nightly development builds,因此,如果您碰巧匹配其中一个目标,那么您可能会很幸运。然后,这些构建通常会一次打破几个月,所以你可能必须自己建造它。)
所以,这些是你的选择:等待1.9.2获得官方二进制版本,使用开发版本,或者停止尝试使用最新版本中尚未出现的功能。