You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python-osc循环调用add_arg无输出的问题求助

问题:Python-OSC循环添加参数无输出的解决办法?

不想手动逐个编写OSC消息参数,比如:

probabilityMSG.add_arg(classProbability[0], arg_type='f')
probabilityMSG.add_arg(classProbability[1], arg_type='f')
probabilityMSG.add_arg(classProbability[2], arg_type='f')
probabilityMSG.add_arg(classProbability[3], arg_type='f')

尝试用循环批量添加参数,但运行后没有任何输出,怀疑python-osc不支持这种方式,相关函数代码如下:

def send_OSC(overallClassProbability, predictedClass, predictedParams):
    ipAddress = "127.0.0.1"
    port = 5005

    client = udp_client.SimpleUDPClient(ipAddress, port)

    classProbability = overallClassProbability.flatten()

    probabilityMSG = osc_message_builder.OscMessageBuilder(address = '/percentage')
    classMSG = osc_message_builder.OscMessageBuilder(address= '/class')
    paramsMSG = osc_message_builder.OscMessageBuilder(address= '/params')

    # -------
    for i in range(len(classProbability)):
        probabilityMSG.add_arg(classProbability[i], arg_type='f')

    # -------
    for i in range(len(predictedParams)):
        paramsMSG.add_arg(predictedParams[i], arg_type='f')

    # -------
    classMSG.add_arg(predictedClass, arg_type='i')

    # -------
    paramsMSG = paramsMSG.build()
    classMSG = classMSG.build()
    probabilityMSG = probabilityMSG.build()
    client.send(paramsMSG)
    client.send(classMSG)
    client.send(probabilityMSG)

请问有解决办法吗?另外是否需要编写自修改Python代码来实现?


解决办法
  1. 循环添加参数本身是Python-OSC支持的,问题出在其他环节

    • 检查数据是否为空:打印classProbability和predictedParams,确认数组内有实际数值。如果数组为空,循环不会添加任何参数,接收端可能因消息无内容而无反应。
    • 简化循环写法,避免索引错误:把索引循环改为直接遍历元素,代码更简洁且不易出错:
      # 替换原索引循环
      for prob in classProbability:
          probabilityMSG.add_arg(prob, arg_type='f')
      for param in predictedParams:
          paramsMSG.add_arg(param, arg_type='f')
      
    • 升级Python-OSC版本:旧版本可能存在消息构建bug,执行pip install --upgrade python-osc更新到最新版。
    • 排查接收端问题:确认接收端正在监听127.0.0.1:5005,无防火墙拦截或端口占用情况。
  2. 完全不需要自修改代码
    自修改代码属于过度设计,完全没必要。循环批量添加参数是Python-OSC的常规用法,你的问题和循环写法无关,重点排查上述数据、版本、接收端的问题即可。


内容的提问来源于stack exchange,提问作者randomboar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:09:21