2013-01-15 30 views
11

pyGTK +を使用して、対話的なプロットをpythonとmatplotlibにいくつか紹介します。そこで私はexample given at the matplotlib websiteを見ました。ImportError:_backend_gdkという名前のモジュールがありません

これは、短いコードの抜粋です:私のpython 2.7を持っているし、2.24をPyGTKを

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 

:私は、私は次のエラーを取得するターミナルでこのスクリプトを実行しようと

#!/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 

ワンズインストールされます。

どこにエラーがあるのか​​把握できますか?私はそれがいくつかのリンクの問題に関連していると思いますか?

sudo apt-get install python-gtk2-dev 

は、これらのプラットフォーム上でこのエラーを修正する必要があります:あなたが必要なのDebian/Ubuntuのパッケージは 'pygtk2-develの' は 'のpython-gtk2の-devの' ではないことを

+2

matplotlibはどのようにインストールしましたか? '_backend_gdk'はコンパイルが必要なc-python拡張です。 – tacaswell

+0

matplotlibがすでにコンパイルされている場合は、matplotlibから別途コンパイルできますか?私は端末からmatplotlibをソースからビルドします。 – Gjan

+0

おそらく、適切にリンクさせるには、setup.pyが行う深い魔法を複製する必要があります。 – tacaswell

答えて

11

注意。

+0

この回答は受け入れられるべきです。明快さ、正しさおよび簡潔さのため+1。 –

+5

この回答は手元の問題とは無関係です – Davide

+0

はい、この回答は役に立ちません。標準のpython-matplotlibパッケージをインストールしましたが、私のシステムに_backend_gdkファイルがあっても、通常のGTKバックエンドを使ってプロットすることはできません。 – jdpipe

5

これは私のシステムにapt-installed matplotlibの代わりにpipインストールされたmatplotlibを使用した場合の症状です。 Ubuntuの/ Debianの上の場合は、試してみてください。

pip uninstall matplotlib 
apt install python-matplotlib 

私が起こっていたと考えているPIPは、インストールすることでGTK出力に必要なC拡張を構築しますが、aptパッケージには、拡張子構築済みを持っていませんでした。私はmatplotlibの最初のpipインストールからのログを持っていないので、何が起こったのか確認できません。

+0

これはちょっと迷惑なのですが、なぜpipが機能しないのですか?私はaptからパッケージをインストールしなければならないと思っていますが、サポートされているバージョン以外のバージョンは使用できません。それでも私はあなたが唯一の働く解決策に答えることが分かった – 2LayerNN300HU