Python pyglet AVBin - 如何安装AVBin

xxj*_*jnn 22 python mp3 pyglet virtualenv

Pyglet使用AVBin来解码MP3.链接:http://avbin.github.com/AVbin/Download.html

使用install.sh安装,使用时会导致错误:

'AVbin is required to decode compressed media')
pyglet.media.riff.WAVEFormatException: AVbin is required to decode compressed media
Run Code Online (Sandbox Code Playgroud)

...所以它安装不正确?使用python virtualenv,怀疑这可能会导致问题...虽然我在virtualenv中运行了AVBin的install.sh,如下所示:

(SoundShenanigans)user@computer:~/Downloads/avbin-linux-x86-64-v8$ sudo bash install.sh 
Run Code Online (Sandbox Code Playgroud)

UPDATE

我找到了安装avbin的地方......似乎安装在正确的位置= S.

~/pyvien/SoundShenanigans/lib/python2.7/site-packages/pyglet/media$ ls
avbin.py   drivers      __init__.pyc   procedural.pyc  riff.pyc
avbin.pyc  __init__.py  procedural.py  riff.py
Run Code Online (Sandbox Code Playgroud)

更新2

该库是.so,而不是.dylib,为什么你想要.dylib神秘的代码?这是Linux而不是Mac(Mac有.dylib,Ubuntu有.so)

File "SoundShenanigans.py", line 4, in
  from pyglet.media import avbin
File "/home/user/pyvien/SoundShenanigans/local/lib/python2.7/site-packages/pyglet/media/avbin.py", line 53, in
  darwin='/usr/local/lib/libavbin.dylib')
File "/home/user/pyvien/SoundShenanigans/local/lib/python2.7/site-packages/pyglet/lib.py", line 122, in load_library
  raise ImportError('Library "%s" not found.' % names[0])
ImportError: Library "avbin" not found.
Run Code Online (Sandbox Code Playgroud)

Seb*_*ian 10

如何安装它:

sudo apt-get install libavbin-dev libavbin0
Run Code Online (Sandbox Code Playgroud)

有关此软件包的更多信息:http://packages.ubuntu.com/source/avbin

编辑:对于较新的ubuntu版本,它看起来不再包含在内.因此,您必须从https://avbin.github.io/AVbin/Download.html下载并通过它安装

sudo sh ./install-avbin-linux-x86-64-v10
Run Code Online (Sandbox Code Playgroud)

  • 这个包在16.04不可用,pyglet现在已经死了吗? (9认同)

小智 8

我在Windows上遇到了同样的问题,并且在Windows上没有安装python 2.7的安装程序.

如果将avbin dll放在文件夹中(或使用安装程序全局安装),则写入:

pyglet.lib.load_library('avbin')
pyglet.have_avbin=True
Run Code Online (Sandbox Code Playgroud)

导入pyglet之后,像这样:

import pyglet
pyglet.lib.load_library('avbin')
pyglet.have_avbin=True
Run Code Online (Sandbox Code Playgroud)

它会愉快地加载和使用avbin.