我在理解 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/