1

我目前正在使用 Ubuntu 13.10 并应用了所有系统更新。我已经安装了 Enthought Canopy(版本:1.1.1.1452)。而今天,当我试图策划时,我什么也没得到。谷歌搜索后,我在命令行中运行了“ipython --pylab”,但收到以下消息:

Matplotlib backend_wx and backend_wxagg require wxPython >=2.8

我可以进入交互式 ipython shell,但我仍然无法绘图。

然后我按照用户论坛的提示尝试了“import wx”并得到了:

/usr/lib/x86_64-linux-gnu/libatk-1.0.so.0: undefined symbol: g_type_class_adjust_private_offset

由于我不久前能够使用 Canopy 的绘图功能,我怀疑 Ubuntu 的系统更新以某种方式引入了与当前 Canopy 的一些库冲突。

任何人都可以提示我解决这个问题吗?非常感谢大家!!

4

1 回答 1

3

同样的问题,同样的系统(Ubuntu 13.10,Canopy 1.1.1.1452),这对我有用。根据这篇文章,问题是wxPython并且Canopy

“我们建议没有大型 wx 特定代码库的用户使用 Qt 后端而不是 wx。”

这是专门为matplotlib使用 Qt (并解决您的问题)而执行的操作。要找出您当前使用matplotlib.get_backend()的后端,请执行以下操作:

>>> import matplotlib
>>> matplotlib.get_backend()
'WXAgg'

如果您看到"WXAgg"如上所示,请将 matplotlib 后端设置为已知后端之一,使用matplotlib.use()如下:

import matplotlib
matplotlib.use('QT4Agg')  

您可以在脚本中添加以上内容,或者在初始化 python 会话时,andpyplotpylab将加载而不会出现错误,例如:

import pylab  
from matplotlib import pylab                                       
from matplotlib import pyplot

更新

自动配置后端的一种方便方法是编辑matplotlibrc配置文件。对于 Canopy,文件位于

~/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/mpl-data

matplotlibrc中,替换行:

backend      : WXAgg

和:

backend      : Qt4Agg
于 2013-12-17T00:09:29.410 回答