无法导入 pyglet.media.avbin
我的错误信息如下:
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系统中的一些神秘操作,我们可能永远也搞不懂。