无法导入 pyglet.media.avbin

1 投票
3 回答
3775 浏览
提问于 2025-04-16 05:38

我的错误信息如下:

C:\Romeo\Scripts>python
Python 2.7 (r27:82525, Jul  4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyglet.media.avbin
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Romeo\lib\site-packages\pyglet\media\avbin.py", line 53, in <module>
    darwin='/usr/local/lib/libavbin.dylib')
  File "C:\Romeo\lib\site-packages\pyglet\lib.py", line 122, in load_library
    raise ImportError('Library "%s" not found.' % names[0])
ImportError: Library "avbin" not found.

我在使用Windows 7 32位系统,已经关闭了dep,并且在system32文件夹里放了avbin.dll。有什么建议吗?非常感谢!

3 个回答

0

我在64位的Windows 7上运行32位的Python 2.6,遇到了同样的问题。knitti给出的解决办法对我也没用。唯一有效的方法就是把avbin.dll这个文件复制到我的.py文件所在的文件夹里。

3

把你的DLL文件复制到system32这个地方被认为是不好的做法。你可以试试把它复制到<your_python_home>\DLLs,通常这个路径是C:\Python27\DLLs。你也可以试试C:\Python27\Lib\site-packages

这个库难道没有一个“正确”的安装方法来处理这些问题吗?比如说运行类似python setup.py install这样的命令?

5

这件事之前在pyglet的邮件列表上讨论过,我发现了这一点。不过如果其他人来这里找答案的话,可以把avbin.dll放到你电脑上Windows 64位系统的syswow64文件夹里。为什么要放在这个地方并不太清楚,因为要运行pyglet,你需要使用32位的Python和32位的avbin.dll,除非你自己编译,或者使用Christoph Gohlke在他的网站上好心编译的版本:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyglet。不过这只是Windows系统中的一些神秘操作,我们可能永远也搞不懂。

撰写回答