当我在Ubuntu 13.10中尝试ipython --pylab时得到了“libatk-1.0.so.0:undefined symbol”

时间:2013-11-13 14:41:36

标签: ubuntu matplotlib wxpython enthought canopy

我目前正在使用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的库冲突。

有人提示我解决这个问题吗?非常感谢你们!

1 个答案:

答案 0 :(得分:3)

同样的问题,相同的系统(Ubuntu 13.10,Canopy 1.1.1.1452),这对我有用。根据{{​​3}}帖子,问题是wxPythonCanopy

  

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

以下是如何让matplotlib与Qt一起使用(并解决您的问题)。要找出您当前的后端,请使用matplotlib.get_backend()

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

如果您看到上面的"WXAgg"this使用matplotlib.use()作为其中一个已知后端:

import matplotlib
matplotlib.use('QT4Agg')  

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

import pylab  
from matplotlib import pylab                                       
from matplotlib import pyplot

<强>更新

自动配置后端的一种便捷方法是编辑set the matplotlib backend配置文件。对于Canopy,文件位于

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

matplotlibrc中,替换以下行:

backend      : WXAgg

使用:

backend      : Qt4Agg