ImportError:没有名为_backend_gdk的模块

Gja*_*jan 11 python pygtk matplotlib

我开始使用pyGTK +了解使用python和matplotlib进行交互式绘图.因此,我看了一下matplotlib网站上给出例子.

这是本守则的简短内容:

#!/usr/bin/env python
"""
Example of embedding matplotlib in an application and interacting with
a treeview to store data.  Double click on an entry to update plot
data

"""
import pygtk
pygtk.require('2.0')
import gtk
from gtk import gdk

import matplotlib
matplotlib.use('GTKAgg')  # or 'GTK'
from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas

from numpy.random import random
from matplotlib.figure import Figure
Run Code Online (Sandbox Code Playgroud)

我尝试在终端中运行此脚本我收到以下错误:

Traceback (most recent call last):
  File "gtk_spreadsheet.py", line 15, in <module>
    from matplotlib.backends.backend_gtk import FigureCanvasGTK as FigureCanvas
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_gtk.py", line 33, in <module>
    from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_gdk.py", line 29, in <module>
    from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array
ImportError: No module named _backend_gdk
Run Code Online (Sandbox Code Playgroud)

我安装了python 2.7和pygtk 2.24.

任何人都可以找出错误的位置?我认为它可能与某些链接问题有关?

小智 13

请注意,您需要的Debian/Ubuntu包不是'pygtk2-devel'而是'python-gtk2-dev':

sudo apt-get install python-gtk2-dev
Run Code Online (Sandbox Code Playgroud)

应该在这些平台上修复此错误.

  • 这个答案与手头的问题无关 (7认同)
  • 是的,这个答案没有帮助.我已经安装了标准的python-matplotlib软件包,我无法使用我常用的GTK后端进行绘图,即使我的系统中有_backend_gdk文件. (2认同)

Hal*_*own 5

这是我刚刚在我的系统上使用pip安装的matplotlib而不是apt安装的matplotlib的症状.如果在Ubuntu/Debian上,请尝试:

pip uninstall matplotlib
apt install python-matplotlib
Run Code Online (Sandbox Code Playgroud)

我相信发生的事情是pip-install没有构建GTK输出所需的C扩展,但是apt包具有预构建的扩展.我没有来自matplotlib的初始pip安装的日志,所以我无法确认这是发生了什么.