我在理解 gi.repository 时遇到了麻烦

我在我的代码中使用这种结构

from gi.repository import Gtk

但是如果我想使用某个组件,我会收到导入错误

我搜索了一些组件,如 GtkSource、Vte、GLib 等,我得到了它的支持。

所以我的代码就像
from gi.repository import Gtk, GtkSource, Vte, GLib

一切正常,但如果我想添加 matplotlib 在我的 Canvas 上绘制,我会出错
    enter code/usr/lib64/python2.7/site-packages/gtk-2.0/gtk/__init__.py:40: Warning: specified class size for type `PyGtkGenericCellRenderer' is smaller than the parent type's `GtkCellRenderer' class size
  from gtk import _gtk
/usr/lib64/python2.7/site-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: assertion `node != NULL' failed
  from gtk import _gtk
/usr/lib64/python2.7/site-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_ascii_strncasecmp: assertion `s2 != NULL' failed
  from gtk import _gtk
Segmentation fault (core dumped) here

我怎样才能让 matplotlib 与 gi.repository 一起工作?

谢谢

最佳答案

这是一个很好的问题。恐怕答案可能是“你不能”。 Matplotlib 的 GTK 后端是为 PyGTK 编写的,这是 GTK 的旧式 Python 绑定(bind)。 gi.repository 包是新式 Python 绑定(bind)。我不知道它们是否可以混合,但您的结果似乎表明它们不能。

关于python - 理解 gi.repository,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8109805/

10-12 22:23