我目前正在使用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的库冲突。
有人提示我解决这个问题吗?非常感谢你们!
答案 0 :(得分:3)
同样的问题,相同的系统(Ubuntu 13.10,Canopy 1.1.1.1452),这对我有用。根据{{3}}帖子,问题是wxPython
和Canopy
:
“我们建议那些没有特定wx特定代码库的用户 使用Qt后端而不是wx。“
以下是如何让matplotlib
与Qt一起使用(并解决您的问题)。要找出您当前的后端,请使用matplotlib.get_backend()
:
>>> import matplotlib
>>> matplotlib.get_backend()
'WXAgg'
如果您看到上面的"WXAgg"
,this使用matplotlib.use()
作为其中一个已知后端:
import matplotlib
matplotlib.use('QT4Agg')
您可以在脚本中添加上述内容,或者在初始化python会话时添加以上内容,pyplot
,pylab
等会加载而不会出现错误,例如:
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