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

Linux下bleak模块报AttributeError: __aexit__错误的解决求助

蓝牙Bleak模块Linux下__aexit__错误解决

我使用bleak模块扫描蓝牙节点,该模块在Windows系统上运行正常,但在Linux系统下运行以下代码时,在__aexit__处出现错误。

原代码

import asyncio
import time
from bleak import BleakScanner
from bleak.backends.bluezdbus.client import BleakClientBlueZDBus

ADDRESS = "EE:68:29:AB:6F:19"


async def main():
    global ADDRESS
    device = await BleakScanner.find_device_by_address(ADDRESS, timeout=20.0)
    print(device)
    if not device:
        time.sleep(0.2)
        print("Can not find device...")
    else:
        async with BleakClientBlueZDBus(device) as client:
            for service in client.services:
                print(service)


if __name__ == "__main__":
    asyncio.run(main())

报错信息

Traceback (most recent call last):
  File "/home/hai/PycharmProjects/pythonProject/main.py", line 23, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/home/hai/PycharmProjects/pythonProject/main.py", line 17, in main
    async with BleakClientBlueZDBus(device) as client:
AttributeError: __aexit__

解决方法

问题出在直接使用了Bleak的底层实现类BleakClientBlueZDBus,这个类并非异步上下文管理器,不支持async with语法。正确的做法是使用Bleak提供的顶层跨平台客户端类BleakClient,它会自动根据系统选择对应的底层实现,同时支持异步上下文管理。

修改后的代码:

import asyncio
import time
from bleak import BleakScanner, BleakClient

ADDRESS = "EE:68:29:AB:6F:19"


async def main():
    global ADDRESS
    device = await BleakScanner.find_device_by_address(ADDRESS, timeout=20.0)
    print(device)
    if not device:
        time.sleep(0.2)
        print("Can not find device...")
    else:
        async with BleakClient(device) as client:
            for service in client.services:
                print(service)


if __name__ == "__main__":
    asyncio.run(main())

内容的提问来源于stack exchange,提问作者Nguyễn Thuận Hải

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:55:15