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

使用Python库BAC0连接BACnet外部设备时出现RuntimeError: no running event loop错误的解决咨询

使用Python库BAC0连接BACnet外部设备时出现RuntimeError: no running event loop错误的解决咨询

我正在尝试使用BAC0 Python库连接到一个BACnet外部设备,以下是我的脚本:

import BAC0

print(BAC0.version)

bbmdIP = '10.x.y.z:47808'  # Replace with actual IP
bbmdTTL = 900
bacnet = BAC0.lite(bbmdAddress=bbmdIP, bbmdTTL=bbmdTTL)  # Connect

print(bacnet.vendorName.strValue)
print(bacnet.modelName.strValue)

whois_results = bacnet.whois()
print("WhoIs results:", whois_results)

print(bacnet.devices)

bacnet.discover(networks='known')

不过我一直遇到以下错误:

2025-01-09 14:35:05,917 - INFO    | Starting Asynchronous BAC0 version 2024.09.10 (Lite)
2025-01-09 14:35:05,920 - INFO    | Using bacpypes3 version 0.0.98
2025-01-09 14:35:05,921 - INFO    | Use BAC0.log_level to adjust verbosity of the app.
2025-01-09 14:35:05,921 - INFO    | Ex. BAC0.log_level('silence') or BAC0.log_level('error')
Traceback (most recent call last):
  File "C:\Users\dmaske\Desktop\New folder\test_bacnet.py", line 7, in <module>
    bacnet = BAC0.connect(bbmdAddress=bbmdIP, bbmdTTL=bbmdTTL)  # Connect
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dmaske\AppData\Roaming\Python\Python311\site-packages\BAC0\scripts\Lite.py", line 141, in __init__
    self._ping_task.start()
  File "C:\Users\dmaske\AppData\Roaming\Python\Python311\site-packages\BAC0\tasks\TaskManager.py", line 143, in start
    self.aio_task = asyncio.create_task(self.execute(), name=f"aio{self.name}")
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\Python311\Lib\asyncio\tasks.py", line 371, in create_task
    loop = events.get_running_loop()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: no running event loop
sys:1: RuntimeWarning: coroutine 'Task.execute' was never awaited

我已经尝试过的方法:

  • 我尝试用不同的BAC0.lite()和BAC0.connect()写法运行脚本,但错误依然存在
  • 我用Yabe软件验证过我的BACnet设备是可访问的,在Yabe里我可以成功注册并发现所有设备
  • 我尝试手动添加事件循环,但没有效果

为什么asyncio.create_task()会出现RuntimeError: no running event loop错误,以及如何正确使用BAC0连接到外部BACnet设备?

备注:内容来源于stack exchange,提问作者Pramod Kumar G H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 13:04:30