我使用MSYS2根据Gtk +文档安装了PyGObject:https://www.gtk.org/download/windows.php
当我运行以下代码时:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
使用python3.7
文件夹中的C:\msys64\mingw64\bin
可以正常工作。
但是当我尝试使用标准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解释器。
答案 0 :(得分:1)
MSYS2中安装的Python版本是使用GCC编译的。安装gobject-introspection时,它是使用GCC编译的,并链接到也使用GCC编译的GTK库。在mingw资源库中,对Python进行了大量修补,以使其可以在这种独特的环境中运行。
不幸的是,将无法运行MSYS2中内置的Python程序包,而无法使用MSVC内置的常规Windows解释器运行它们。您可以使用Mingw-w64 Python解释器使用PyInstaller或其他方法打包应用程序,然后在Windows中运行它。您将必须使用MSYS2中的Python解释器进行开发。