2016-07-03 3 views
3

python 용 rtmidi가 설치되어 가져올 수있었습니다. 내가 여기에 주어진 전체 사용의 예를 실행하려고 때 :AttributeError in python-rtmidi 샘플 코드

AttributeError : https://pypi.python.org/pypi/python-rtmidi를,이 오류가 발생했습니다 '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을 입력하면 작동합니다.

저는 파이썬 3.5를 사용하고 있습니다. 어떤 도움을 주셔서 감사합니다, 감사합니다!

답변

2

문제가있는 이유는 python-rtmidi에 대한 샘플 코드를 실행하고 있지만 rtmidi-python을 설치했기 때문입니다. 나는 당신을 괴롭히지 않습니다. 이것들은 거의 동일한 인터페이스로 동일한 일을하는 두 개의 개별 라이브러리입니다. 너트 야!

  1. 당신이 수행하여 올바른 라이브러리를 설치할 수 있습니다 : 당신은 두 가지 옵션이 있습니다 pip install python-rtmidi
  2. 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 속성을 참조하기 만하면됩니다.