树莓派4B运行BlueZ Mesh API的test-mesh脚本时import agent失败
解决BlueZ test-mesh脚本"Provisioning agent not found"错误
核心原因
test-mesh脚本里的import agent是相对导入,它依赖BlueZ源码test目录下的agent.py文件。如果运行环境中缺少这个文件,或者脚本不在正确的目录下执行,就会触发ImportError,导致agent变量被设为None,最终抛出"Provisioning agent not found"错误。
具体修复步骤
完整获取BlueZ源码的test目录文件
不要单独下载test-mesh脚本,克隆完整的BlueZ仓库并进入test目录:git clone git://git.kernel.org/pub/scm/bluetooth/bluez.git cd bluez/test必须在test目录下执行脚本,这样相对导入才能找到同目录的agent.py。
检查agent.py是否存在
在test目录下执行以下命令确认文件存在:ls -l agent.py如果文件缺失,重新克隆仓库或从BlueZ源码的test目录手动获取agent.py。
使用正确的Python环境执行
树莓派默认Python3环境可满足需求,执行脚本时指定Python3:python3 test-mesh若使用虚拟环境,需确保激活的环境能访问当前目录的Python模块。
可选:验证BlueZ mesh功能配置
- 确认
bluetoothd启动时带有--experimental参数(BlueZ mesh功能需开启实验模式); - 用
bluetoothctl show检查树莓派蓝牙适配器状态,确保未被禁用。
- 确认
内容的提问来源于stack exchange,提问作者alex
相关产品推荐
相关产品推荐

