wxPython 导入错误
我在理解Python中的一个错误信息时遇到了困难。
昨天,我使用最新的EPD包安装了Python,并且为Mac OS安装了wxPython2.9,使用的是wxPython2.9-osx-cocoa-py2.7这个包。然后我把wx添加到了我的PYTHONPATH中。
export WXDIR=/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages/wx-2.9.1-osx_cocoa
export PYTHONPATH=$WXDIR
export PYTHONPATH=$PYTHONPATH:$WXDIR/tools
但是当我尝试运行一些代码时,出现了这个错误:
In [14]: import matplotlib.pyplot
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/Users/imrisofer/Documents/third/hddm-read-only/hddm/<ipython console> in <module>()
/Library/Frameworks/EPD64.framework/Versions/7.0/lib/python2.7/site-packages/matplotlib/pyplot.py in <module>()
93
94 from matplotlib.backends import pylab_setup
---> 95 new_figure_manager, draw_if_interactive, show = pylab_setup()
96
97 @docstring.copy_dedent(Artist.findobj)
/Library/Frameworks/EPD64.framework/Versions/7.0/lib/python2.7/site-packages/matplotlib/backends/__init__.py in pylab_setup()
23 backend_name = 'matplotlib.backends.%s'%backend_name.lower()
24 backend_mod = __import__(backend_name,
---> 25 globals(),locals(),[backend_name])
26
27 # Things we pull in from all backends
/Library/Frameworks/EPD64.framework/Versions/7.0/lib/python2.7/site-packages/matplotlib/backends/backend_wxagg.py in <module>()
21
22 from backend_agg import FigureCanvasAgg
---> 23 import backend_wx # already uses wxversion.ensureMinimal('2.8')
24 from backend_wx import FigureManager, FigureManagerWx, FigureCanvasWx, \
25 FigureFrameWx, DEBUG_MSG, NavigationToolbar2Wx, error_msg_wx, \
/Library/Frameworks/EPD64.framework/Versions/7.0/lib/python2.7/site-packages/matplotlib/backends/backend_wx.py in <module>()
43 import wxversion
44 except ImportError:
---> 45 raise ImportError(missingwx)
46
47 # Some early versions of wxversion lack AlreadyImportedError.
ImportError: Matplotlib backend_wx and backend_wxagg require wxPython >=2.8
我可以成功导入wx,所以我不知道问题出在哪里。我的PYTHONPATH里是不是缺少了什么?
10 个回答
4
在导入任何wx模块之前,先选择你的wx版本。
import wxversion
wxversion.select('2.8')
上面的代码应该在import wx
之前写。
5
我在使用Ubuntu 13.10、Canopy 1.2和PyCharm 3.0.2的时候,想用matplotlib这个库,但总是出现一个错误,提示“Matplotlib backend_wx和backend_wxagg需要wxPython版本大于等于2.8”。我很确定我用的是wxPython 2.8。然后我尝试了这个页面上描述的所有方法,但都没有解决我的问题。
后来我发现可以通过修改matplotlibrc文件来解决这个问题。这个文件里有一行:
backend : WXAgg
其实我们可以把这个backend(后端)改成我们喜欢的任何值,我把它改成了TKAgg,这样就能正常工作了。
15
在Ubuntu 12.04系统中,可以通过运行以下命令来解决这个问题:
sudo apt-get install libjpeg62
我知道这可能在这里没什么用,但我想把它记录在网上的某个地方,这样当我自己再次遇到这个问题时,就能找到它,因为这肯定会发生。