我为python安装了rtmidi并且能够导入它。但是当我试图运行这里给出的整个用法示例:https://pypi.python.org/pypi/python-rtmidi时,我收到了这个错误:
AttributeError:'rtmidi_python.MidiOut'对象没有属性'get_ports'
这是完整的代码:
import time
import rtmidi_python as rtmidi
midiout = rtmidi.MidiOut()
available_ports = midiout.get_ports()
if available_ports:
midiout.open_port(0)
else:
midiout.open_virtual_port("My virtual output")
note_on = [0x90, 60, 112] # channel 1, middle C, velocity 112
note_off = [0x80, 60, 0]
midiout.send_message(note_on)
time.sleep(0.5)
midiout.send_message(note_off)
del midiout
我在导入部分中稍微修改了一下代码,因为当我放import rtmidi
时它不起作用,但是当我放import rtmidi_python
时它会起作用。
我正在使用Python 3.5。任何帮助将不胜感激,谢谢!
答案 0 :(得分:3)
您遇到问题的原因是您正在运行python-rtmidi的示例代码,但您安装了rtmidi-python。我没跟你说,这是两个独立的库,用几乎相同的界面做同样的事情。它的坚果!您有两种选择:
pip install python-rtmidi
您可以修改代码,使其与rtmidi-python
一起使用,如下所示:
import time
import rtmidi_python as rtmidi
midiout = rtmidi.MidiOut()
available_ports = midiout.ports
if available_ports:
midiout.open_port(0)
else:
midiout.open_virtual_port("My virtual output")
note_on = [0x90, 60, 112] # channel 1, middle C, velocity 112
note_off = [0x80, 60, 0]
midiout.send_message(note_on)
time.sleep(0.5)
midiout.send_message(note_off)
del midiout
您会看到:您只需引用get_ports()
属性,而不是ports
。