用于PyGObject的MSYS2 python解释器和标准python解释器之间有何区别?

时间:2019-05-26 21:38:03

标签: python pygobject msys2

我使用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解释器。

1 个答案:

答案 0 :(得分:1)

MSYS2中安装的Python版本是使用GCC编译的。安装gobject-introspection时,它是使用GCC编译的,并链接到也使用GCC编译的GTK库。在mingw资源库中,对Python进行了大量修补,以使其可以在这种独特的环境中运行。

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