导入dbus时出现AttributeError: module 'dbus' has no attribute 'lowlevel'如何解决
问题根因
- 你当前使用了Python虚拟环境(venv),执行
sudo apt install python3-dbus安装的是系统全局的dbus依赖,不会自动生效到你项目的venv环境中 - 你大概率通过pip安装了PyPI上同名的无效
dbus包,该包不是官方的dbus-python绑定,存在循环导入缺陷,直接触发你遇到的AttributeError: module 'dbus' has no attribute 'lowlevel'报错
解决方案
按以下步骤操作即可修复:
- 先激活你的项目虚拟环境,执行命令卸载错误安装的dbus相关包:
pip uninstall -y dbus _dbus_bindings dbus-python
- 选择以下任意一种方案安装正确的dbus依赖到虚拟环境:
- 方案一(优先选择,适配性最高):将系统预装的合法python3-dbus链接到虚拟环境中。先手动删除venv的site-packages目录下残留的dbus、_dbus_bindings相关文件夹,再执行:
ln -s /usr/lib/python3/dist-packages/dbus* /home/upboard/visioonbot/Connect4Py/venv/lib/python3.6/site-packages/
- 方案二:虚拟环境内编译安装官方dbus-python。先安装编译所需的系统依赖:
sudo apt install -y libdbus-1-dev libdbus-glib-1-dev build-essential python3-dev
保持虚拟环境激活状态,执行pip安装命令:
pip install dbus-python
- 验证修复效果:激活虚拟环境后执行
python -c "import dbus; print(dbus.lowlevel)",无报错且正常输出对象信息即为修复成功。
内容的提问来源于stack exchange,提问作者noobie
相关产品推荐
相关产品推荐

