【问题标题】:Difference between MSYS2 python interpreter and standard python interpreter for PyGObject?PyGObject的MSYS2 python解释器和标准python解释器之间的区别?
【发布时间】:2019-05-26 21:38:03
【问题描述】:

我根据 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 解释器,该解释器存在于外国软件中。

【问题讨论】:

    标签: python pygobject msys2


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 2016-12-17
      • 2017-07-23
      • 1970-01-01
      相关资源
      最近更新 更多