PyGObject 的 MSYS2 python 解释器和标准 python 解释器之间的区别?

Difference between MSYS2 python interpreter and standard python interpreter for PyGObject?

我根据 Gtk+ 文档使用 MSYS2 安装了 PyGObject:https://www.gtk.org/download/windows.php

当我 运行 以下代码时:

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

使用 C:\msys64\mingw64\bin 文件夹中的 python3.7 效果很好。

但是当我尝试 运行 使用我的标准 python 解释器或嵌入式解释器将 msys2 站点包添加到路径时,我得到一个错误

import sys
sys.path.append(r"C:\msys64\mingw64\lib\python3.7\site-packages")
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
ImportError: cannot import name '_gi' from 'gi' (C:\msys64\mingw64\lib\python3.7\site-packages\gi\__init__.py)

为什么? msys2 python 解释器和其他解释器有什么区别?有办法解决这个问题吗?

最后,我想让 PyGObject 可用于现有的嵌入式 python 解释器,它存在于外国软件中。

安装在MSYS2中的Python版本是用GCC编译的。当你安装 gobject-introspection 时,它是用 GCC 编译的,并链接到同样使用 GCC 编译的 GTK 库。在 mingw 存储库中,Python 被大量修补以使其在这个独特的环境中达到 运行。

不幸的是,运行 Python 内置在 MSYS2 中的包和 运行 它们无法使用内置的常规 Windows 解释器MSVC。您可以使用 PyInstaller 或其他方法与 Mingw-w64 Python 解释器和 运行 在 Windows 中打包应用程序。您必须使用 MSYS2 中的 Python 解释器进行开发。