You need to enable JavaScript to run this app. Linux Mint 20下pip安装PyBluez失败,求蓝牙设备连接状态检测方案
优惠活动
大模型
产品
解决方案
定价
更多

Linux Mint 20下pip安装PyBluez失败,求蓝牙设备连接状态检测方案

解决方案

一、PyBluez安装失败修复

你遇到的编译报错是因为仅安装了BlueZ运行时组件,缺少编译PyBluez所需的开发头文件,按以下步骤操作即可:

  • 先安装系统依赖包:
sudo apt update
sudo apt install libbluetooth-dev python3-dev build-essential
  • 激活你的Python虚拟环境后重新执行安装命令:
pip install PyBluez

二、无需PyBluez的蓝牙连接状态检测方案

你的核心需求仅为检测设备连接状态,完全可以不用安装PyBluez,使用BlueZ自带工具即可实现,而且兼容性比已废弃的hcitool更好:

方案1:使用bluetoothctl检测(通用场景)

import subprocess

def check_bt_connected(mac_addr):
    res = subprocess.run(
        ["bluetoothctl", "info", mac_addr.upper()],
        capture_output=True,
        text=True
    )
    return "Connected: yes" in res.stdout

# 调用示例
if check_bt_connected("XX:XX:XX:XX:XX:XX"):
    print("蓝牙设备已连接")
else:
    print("蓝牙设备未连接")

方案2:检测rfcomm绑定设备(串口蓝牙场景)

你已经用rfcomm绑定了设备端口,直接尝试打开端口即可判断连接状态:

def check_rfcomm_connected(dev_path="/dev/rfcomm0"):
    try:
        # 尝试打开设备,连接正常时不会报错
        with open(dev_path, "rb", buffering=0):
            return True
    except OSError:
        return False

说明:hcitool是BlueZ已经废弃的工具,且rfcomm bind仅做端口映射,不会主动触发连接,所以用hcitool con查不到绑定设备属于正常现象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 02:24:01