2012-10-28 44 views
11

我一直在使用matplotlib一段時間沒有問題。已經有一段時間了,因爲我需要交互式繪圖功能(使用Tkaag)。從那以後,我更新了matplotlib幾次。Matplotlib後端缺少模塊和下劃線

我今天嘗試使用它,但它產生了一個錯誤。

/usr/local/lib/python2.7/dist-packages/matplotlib/backends/tkagg.py in <module>() 
----> 1 import _tkagg 
     2 import Tkinter as Tk 
     3 
     4 def blit(photoimage, aggimage, bbox=None, colormode=1): 
     5  tk = photoimage.tk 

ImportError: No module named _tkagg 

我嘗試了不同的後端,加入

backend  : GTKAgg 

到matplotlibrc。只是爲了獲得不同模塊的相同錯誤。

ImportError: No module named _backend_gdk 

當我瀏覽,從而在/usr/local/lib/python2.7/dist-packages/matplotlib/backends/後端我注意到,所有以下劃線所需的模塊丟失。

[email protected] /usr/local/lib/python2.7/dist-packages/matplotlib/backends $ ls 
backend_agg.py  backend_macosx.py backend_template.pyc 
backend_agg.pyc  backend_macosx.pyc backend_tkagg.py 
_backend_agg.so  backend_mixed.py  backend_tkagg.pyc 
backend_cairo.py  backend_mixed.pyc backend_wxagg.py 
backend_cairo.pyc  backend_pdf.py  backend_wxagg.pyc 
backend_cocoaagg.py backend_pdf.pyc  backend_wx.py 
backend_cocoaagg.pyc backend_ps.py  backend_wx.pyc 
backend_emf.py  backend_ps.pyc  __init__.py 
backend_emf.pyc  backend_qt4agg.py __init__.pyc 
backend_fltkagg.py backend_qt4agg.pyc Matplotlib.nib 
backend_fltkagg.pyc backend_qt4.py  qt4_compat.py 
backend_gdk.py  backend_qt4.pyc  qt4_compat.pyc 
backend_gdk.pyc  backend_qtagg.py  qt4_editor 
backend_gtkagg.py  backend_qtagg.pyc tkagg.py 
backend_gtkagg.pyc backend_qt.py  tkagg.pyc 
backend_gtkcairo.py backend_qt.pyc  windowing.py 
backend_gtkcairo.pyc backend_svg.py  windowing.pyc 
backend_gtk.py  backend_svg.pyc 
backend_gtk.pyc  backend_template.py 

我現在matplotlib版本:

matplotlib  - 1.1.1  - active development (/usr/local/lib/python2.7/dist-packages) 

我已經試過卸載並重新安裝matplotlib有:

pip uninstall matplotlib 
pip install matplotlib 

和一切順利。

關於讓交互式繪圖再次運行的提示?

BUILDING MATPLOTLIB 

       matplotlib: 1.1.1 

        python: 2.7.3rc2 (default, Apr 22 2012, 22:35:38) [GCC 

          4.6.3] 

        platform: linux2 



    REQUIRED DEPENDENCIES 

        numpy: 1.6.2 

       freetype2: 14.1.8 



    OPTIONAL BACKEND DEPENDENCIES 

        libpng: 1.2.49 

        Tkinter: no 

          * Using default library and include directories for 

          * Tcl and Tk because a Tk window failed to open. 

          * You may need to define DISPLAY for Tk to work so 

          * that setup can determine where your libraries are 

          * located. Tkinter present, but header files are not 

          * found. You may need to install development 

          * packages. 

       pkg-config: looking for pygtk-2.0 gtk+-2.0 

          * Package pygtk-2.0 was not found in the pkg-config 

          * search path. Perhaps you should add the directory 

          * containing `pygtk-2.0.pc' to the PKG_CONFIG_PATH 

          * environment variable No package 'pygtk-2.0' found 

          * Package gtk+-2.0 was not found in the pkg-config 

          * search path. Perhaps you should add the directory 

          * containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH 

          * environment variable No package 'gtk+-2.0' found 

          * You may need to install 'dev' package(s) to 

          * provide header files. 

         Gtk+: no 

          * Could not find Gtk+ headers in any of 

          * '/usr/local/include', '/usr/include', '.' 

      Mac OS X native: no 

         Qt: no 

         Qt4: Qt: 4.8.1, PyQt4: 4.9.1 

        PySide: no 

        Cairo: 1.8.8 



    OPTIONAL DATE/TIMEZONE DEPENDENCIES 

        datetime: present, version unknown 

        dateutil: matplotlib will provide 

         pytz: matplotlib will provide 

    adding pytz 



    OPTIONAL USETEX DEPENDENCIES 

        dvipng: 1.14 

       ghostscript: 9.05 

        latex: 3.1415926 

        pdftops: 0.18.4 
+2

當pip安裝matplotlib時,你會得到什麼輸出?我懷疑setup.py腳本沒有獲得適當的庫,因此不構建Tk或Gtk後端。 – pelson

回答

11

感謝peison的評論我檢查了matplotlib的安裝日誌,它顯示了很多依賴關係。

我還沒有注意到,因爲之前安裝目錄的整個過程跑的真快使用

pip install matplotlib

,結束了succesfull安裝。

回答這個問題。解決方案是安裝軟件包tk和tk-dev,並重建matplotlib。

+0

謝謝。重新安裝matplotlib的作品! –

+6

我做了'pip卸載matplotlib''sudo apt-get install tk''sudo apt-get install tk-dev''pip install matplotlib',都成功運行了,但是我仍然得到'ImportError:無法導入名稱_tkagg' – Peter

+0

On Ubuntu 14.04我必須安裝一個較老的版本才能顯示'sudo pip install matplotlib == 1.5.0'(最新版本是'1.5.1') – hobs