Python样品化学需氧量的属性误差

2024-06-01 01:21:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我为python安装了rtmidi并能够导入它。但是当我试图运行这里给出的整个用法示例:https://pypi.python.org/pypi/python-rtmidi时,我得到了一个错误:

AttributeError:'rtmidi_python.MidiOut'object没有属性'get'u 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时,它可以工作。在

我使用的是python3.5。如有任何帮助,将不胜感激,谢谢!在


Tags: 代码importpypigettimeonportvirtual
1条回答
网友
1楼 · 发布于 2024-06-01 01:21:14

出现问题的原因是您正在运行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
    

您可以看到:您只需引用ports属性,而不是get_ports()。在

相关问题 更多 >