[英]AttributeError in python-rtmidi sample code
我為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。 任何幫助將不勝感激,謝謝!
你遇到麻煩的原因是你正在運行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
您會看到:您只需引用ports
屬性,而不是執行get_ports()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.