我想让python为我播放一个音频文件。我在热情的树冠上写代码。

import pyglet

sound = pyglet.media.load('song.wav')
sound.play()
pyglet.app.run()

运行此命令时,会出现错误:name error:未定义全局名称“EventLoop”
此外,音频文件在程序出错之前播放第一个音符。
我不知道发生了什么事。
p.s.我需要pylab后端为pyglet交互吗?
操作系统-osx 10.12.1
pyglet版本1.1.4-3
回溯
NameError                                 Traceback (most recent call last)
/Users/name/Documents/name/Arduino Projects/python/Audio Testing.py in <module>()
      3 sound = pyglet.media.load('s.wav')
      4 sound.play()
----> 5 pyglet.app.run()

/Users/name/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pyglet/app/__init__.pyc in run()
    262
    263     '''
--> 264     EventLoop().run()
    265
    266 def exit():

NameError: global name 'EventLoop' is not defined

最佳答案

我试图复制错误,但无法复制,尽管这个库似乎也有其他一些错误。
我确实发现使用最新版本的库效果更好。我的建议是把你的版本从1.1.4提高到1.2.4

pip uninstall pyglet
pip install pyglet==1.2.4

关于python - NameError:未定义全局名称“EventLoop”-pyglet,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44350629/

10-12 18:16