我不明白为什么当我'试图使用Gtk3Agg后端时,我最终错误地告诉我没有找到cairo模块。
** (simple_plot_in_gtk3.py:312517): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files Traceback (most recent call last): File "simple_plot_in_gtk3.py", line 5, in from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as FigureCanvas File "/Produits/publics/x86_64.Linux.RH6/python/3.4.1/lib/python3.4/site-packages/matplotlib-1.3.1-py3.4-linux-x86_64.egg/matplotlib/backends/backend_gtk3agg.py", line 1, in import cairo ImportError: No module named 'cairo'
我正在尝试从matplolib网站运行matplotlib/GTK3 example。
答案 0 :(得分:0)
如果查看backend_gtk3agg.py
文件,您会看到文件中的第一行是;
import cairo
import numpy as np
import sys
import warnings
import backend_agg
import backend_gtk3
from matplotlib.figure import Figure
from matplotlib import transforms
所以,是的,gtk3agg后端需要cairo library及其Python bindings。和numpy。
它将Cairo用于ImageSurface缓冲区,因为这是AGG does not provide。我不知道为什么gtk3agg开发人员选择了这种方法。大概是因为它很方便。
答案 1 :(得分:0)
安装Python binging for Python的工作原理:
$ pip install pycairo