我在Python中找出错误消息时遇到了麻烦。
昨天,我使用最新的EPD软件包安装了python,并使用适用于Mac OS的wxPython2.9-osx-cocoa-py2.7软件包安装了wxPython2.9。 然后我把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中遗漏了什么吗?
答案 0 :(得分:15)
在Ubuntu 12.04中,可以通过运行命令
来解决此问题sudo apt-get install libjpeg62
我意识到这可能在这里没有用,但是我想在tewe interwebz上的某处记录它,所以当我再次遇到这个问题时我会发现它,这无疑会发生。
答案 1 :(得分:5)
我正在使用Ubuntu 13.10,Canopy 1.2和PyCharm 3.0.2。当尝试使用matlablib时,它总是抱怨“Matplotlib backend_wx和backend_wxagg需要wxPython&gt; = 2.8”。确定我正在使用wxPython 2.8。然后我尝试了本页描述的所有方法,但它们都不适合我。
事实证明,它可以通过修改matplotlibrc文件来解决。有一条线:
后端:WXAgg
事实上,我们可以将后端更改为我们喜欢的任何内容,然后将其更改为TKAgg,这对我来说效果很好。
答案 2 :(得分:4)
在导入任何wx模块之前选择您的wx版本
import wxversion
wxversion.select('2.8')
上述代码应该在import wx
答案 3 :(得分:4)
在我没有在site-packages目录中安装wxversion.py的Windows x64安装中发生这种情况(默认情况下为c:\ Python27 \ Lib \ site-packages)。
您可以从WX svn存储库获取wxversion.py的副本: http://svn.wxwidgets.org/viewvc/wx/wxPython/trunk/wxversion/wxversion.py?content-type=text%2Fplain&view=co
答案 4 :(得分:2)
这个链接帮助了我 https://support.enthought.com/entries/22601196-wxPython-2-8-and-2-9
以下是我如何解决问题,我希望将来对其他人有用
在终端:gedit Enthought / Canopy_64bit / User / lib / python2.7 / site-packages / matplotlib / mpl-data / matplotlibrc
编辑线&#34;后端:WXAgg&#34;进入&#34;后端:QtAgg&#34;
保存并退出
答案 5 :(得分:1)
我自己就碰到了这个。如果您将wx
安装为单版本安装(运行INSTALL_MULTIVERSION=0
时setup.py
),则会产生此(非常无用的)错误消息的一个潜在原因。在这种情况下,模块wxversion
不会构建(或安装),因此matplotlib错误地假定所有wx
都缺失。
目前这是homebrew版本的wxWidgets(wxmac
)使用选项--python
安装的默认设置。
在您的情况下(虽然迟了一年半),您需要确保wxversion.py
中存在/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages/
。如果没有,则需要使用上面的标志集重新编译wx。否则,您只需将$PYTHONPATH
设置为包含基本site-packages目录:
export WXDIR=/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages
export PYTHONPATH=$WXDIR:$WXDIR/wx-2.9.1-osx_cocoa:$WXDIR/wx-2.9.1-osx_cocoa/tools
答案 6 :(得分:1)
我已经解决了这个问题:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
答案 7 :(得分:1)
我通过在〜/ .matplotlib / matplotlibrc中将后端设置为MacOSX来解决这个问题:
后端:MacOSX
答案 8 :(得分:0)
我通过查看python库中的site packages文件夹在Windows上解决了这个问题。在那里,应该有另一个名为site-packages的文件夹。在这个子文件夹中,有一个wxversion库。如果将此库复制到python中的Lib文件夹中,则应避免此导入错误。
答案 9 :(得分:0)
sudo apt-get install python-wxtools
安装它。为我工作。