【发布时间】:2013-01-24 04:13:34
【问题描述】:
尝试在 Ubuntu 12.04 上获取 MIDI 接口以与 pygame 一起使用。我知道键盘可以工作,因为它可以控制 vkeybd 并与 OSX 上的 PyGame 一起工作,所以 python 中的 MIDI 存在问题。
$ python -m pygame.examples.midi --list
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/lib/python2.7/dist-packages/pygame/examples/midi.py", line 820, in <module>
print_device_info()
File "/usr/lib/python2.7/dist-packages/pygame/examples/midi.py", line 25, in print_device_info
pygame.midi.init()
File "/usr/lib/python2.7/dist-packages/pygame/midi.py", line 71, in init
import pygame.pypm
ImportError: /usr/lib/libportmidi.so.0: undefined symbol: snd_seq_event_input_pending
python-pygame 通过包管理器安装,python-pm 也是如此。
有什么想法吗? :)
【问题讨论】:
-
运行
ldd /usr/lib/libportmidi.so.0。它是否显示任何缺少的库? -
ldd /usr/lib/libportmidi.so.0linux-vdso.so.1 => (0x00007fffdabff000)libporttime.so.0 => /usr/lib/libporttime.so.0 (0x00007ff35ac2f000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff35a870000)libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff35a652000)/lib64/ld-linux-x86-64.so.2 (0x00007ff35b05e000) -
我应该寻找什么?
-
诸如此类的未定义符号有时可能表示缺少库。看来所有必需的库都已到位,因此这不是您的问题。在我的系统上,
snd_seq_event_input_pending函数存在于/usr/lib/libasound.so.2文件中,我在您的ldd列表中没有看到该函数。libasound2包安装了吗? -
libasound 和 libasound2-dev 都已安装。嗯。