Fel*_*tha 5 python midi python-import python-3.x python-3.5
我为 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
Run Code Online (Sandbox Code Playgroud)
我在导入部分稍微修改了代码,因为不知何故,当我放入时它不起作用,import rtmidi但当我放入import rtmidi_python.
我正在使用 Python 3.5。任何帮助将不胜感激,谢谢!
您遇到问题的原因是您正在运行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
Run Code Online (Sandbox Code Playgroud)您会看到:您没有执行get_ports(),而是简单地引用了ports属性。
| 归档时间: |
|
| 查看次数: |
1673 次 |
| 最近记录: |