使用matplotlib TKinter后端的ImportError

时间:2014-01-15 08:59:14

标签: python matplotlib tkinter backend importerror

我正在使用Tkinter接口和matplotlib TkAgg后端在python中开发用户界面,以便在Linux机器上绘制图形。一周前,我有一个工作代码,但随后发布了一些系统重启/更新。

现在我面临着将matplotlib与其TkAgg后端一起导入的问题。这是来自matplotlib页面的官方Tkinter embedding example的非常简化的版本(示例本身也不起作用,使用相同的ImportError崩溃):

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pylab as plt

plt.plot([1,2,3], [1,3,5])
plt.show()

我从控制台运行此脚本并获得以下输出:

<58> python matplotlibtkinter.py --verbose-helpful
$HOME=/home/optimi/bzfhende
matplotlib data path /usr/lib64/python2.7/site-packages/matplotlib/mpl-data
loaded rc file /home/optimi/bzfhende/.matplotlib/matplotlibrc
matplotlib version 1.3.1
verbose.level helpful
interactive is False
platform is linux2
CACHEDIR=/home/optimi/bzfhende/.matplotlib
Using fontManager instance from /home/optimi/bzfhende/.matplotlib/fontList.cache
Traceback (most recent call last):
   File "matplotlibtkinter.py", line 3, in <module>
       import matplotlib.pylab as plt
   File "/usr/lib64/python2.7/site-packages/matplotlib/pylab.py", line 269, in <module>
       from matplotlib.pyplot import *
   File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 98, in <module>
_      backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
   File "/usr/lib64/python2.7/site-packages/matplotlib/backends/__init__.py", line 28, in pylab_setup
       globals(),locals(),[backend_name],0)
   File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 14, in <module>
       import matplotlib.backends.windowing as windowing
ImportError: No module named windowing

我要求我们的管理员更新系统范围的matplotlib安装,但这并没有解决问题。 窗口后端的谷歌搜索问题没有任何直接打击。 它必须与已安装的软件包有关,但我仍然不愿意设置单独的安装:如果系统范围的配置未修复,我组中的其他人检查该工具将最终在此处发布相同的问题

我感谢您在修复此事时能给予我的每一个帮助。

编辑:也许我应该提一下,无论我选择什么后端,我都不会看到情节了。

EDIT2:感谢用户tcaswell,我认为错误的原因是人们可以想象的最简单的原因:窗口化。在matplotlib / backends目录中缺少{py | pyc}。为了重建matplotlib,我查看了matplotlib-faq中提到的git的最新版本。从matplotlib-repo,运行

python setup.py build

显示重建tkagg-backend缺少tk-dev库/头文件

最后编辑:手头有tk-dev软件包后,我能够在本地构建和 在虚拟环境中安装matplotlib。这就是诀窍。

0 个答案:

没有答案