无法在 Python3 中导入 gi.repository

Posted

技术标签:

【中文标题】无法在 Python3 中导入 gi.repository【英文标题】:Cannot import gi.repository in Python3 【发布时间】:2022-01-03 19:59:23 【问题描述】:

我正在浪费大量时间试图找到一种在 Python3 中导入模块 gi.repository 的方法,无论我尝试安装什么,使用 pip 或使用 apt 似乎都不起作用。 我只能找到很多年前的问题和答案,即使我所遵循的指南仅来自一年前。 本指南 (https://punchthrough.com/creating-a-ble-peripheral-with-bluez/) 将在 Raspberry Pi 上创建蓝牙服务(我使用的是 4、8GB)。 我正在构建一个 Flutter 应用程序来通过 BLE 控制覆盆子,以管理通过 GPIO 连接的一些硬件。 即使打开和关闭一个 LED 似乎也很困难,而且需要太多的代码行才能完成。任何人有一些建议可以让它变得简单吗?

我正在使用 python3 virtualenv 我的说法是:from gi.repository import GLib 错误信息是:ImportError: No module named gi.repository 使用:Raspbian GNU/Linux 10 (buster) 显然我已经尝试过 pip install 和 apt install 来解决这个问题

【问题讨论】:

我更新了问题,感谢您的支持:) 我正在寻找一些替代方案,我找到了 bluezero 库,我想你写了它,现在我正在运行 cpu_temperature.py 脚本,我遇到了与 gi.repository 相同的错误。我在您建议的链接上安装了 pip 库(选项 1),但它不起作用 是的,我做到了,现在脚本运行了,但是我不明白为什么其他设备看不到树莓派(我也使用bluetoothctl打开广告) 好的,我的错,使用 btmon 我注意到脚本可以工作,我可以连接到 RPI,非常感谢! 【参考方案1】:

正如@ukBaz 所建议的,解决方案是使用'--system-site-packages' 选项创建一个新环境:所以解决方案是:

python3 -m venv --system-site-packages env_name

...现在脚本运行,gi.repository 导入工作!

【讨论】:

以上是关于无法在 Python3 中导入 gi.repository的主要内容,如果未能解决你的问题,请参考以下文章

在 python 3.4 中导入 tensorflow 时出错“无法加载本机 TensorFlow 运行时”

无法在 python 3.6 中导入 cv2 OpenCV 2.4.13

无法在 Python 2.x 和 Python 3.x 中导入 turtle 模块

在 python3 中导入超出***包失败

在 Python 中导入 Tkinter 时出现 ImportError [重复]

有没有办法使用 SWIG C++ 创建一个 python 模块,可以在 Python2 和 Python3 中导入