对于我的一个 Python 项目,我需要 GLib 2.76.6。 不幸的是,PyGObject 的版本为 2.71.3。 所以我需要一种使用 GLib 2.76.6 构建 PyGObject 的方法。
我尝试从该来源构建: https://pygobject.readthedocs.io/en/latest/contact.html 但我安装后出现这个错误:
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/nvidia/deepstream/deepstream-6.4/pygobject-3.44.2/gi/__init__.py", line 40, in <module>
from . import _gi
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import)
当前版本的 PyGObject (3.46.0+) 具有以下系统依赖项:
glib:>= 2.64.0
g对象内省:>= 1.64.0
libffi:>= 3.0
这些版本支持 LTS 或更新版本的 Linux,例如 Ubuntu 20.04 或 Debian Bullseye。
要从源代码构建 PyGObject,您可以按照适用于您的发行版的入门指南中的“使用 pip 从 PyPI 安装”部分进行操作。然而,PyGObject 并不是真正针对特定版本的 GLib 构建的,因为它不链接到 GLib 的库。相反,它正在使用内省。为此,需要在编译时扫描 GLib 并生成元数据文件。然后语言绑定可以读取此元数据并自动提供绑定以调用 C 库。