12

我无法在 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 中的任何内容吗?

4

10 回答 10

15

在 Ubuntu 12.04 中,这个问题可以通过运行命令来解决

sudo apt-get install libjpeg62

我意识到这在这里可能没有用,但我想在 interwebz 上的某个地方记录它,这样当我自己再次遇到这个问题时我可以找到它,这无疑会发生。

于 2012-05-22T18:00:17.057 回答
5

我使用的是 Ubuntu 13.10、Canopy 1.2 和 PyCharm 3.0.2。尝试使用 matlablib 时,它总是抱怨“Matplotlib backend_wx 和 backend_wxagg 需要 wxPython >=2.8”。很确定我使用的是 wxPython 2.8。然后我尝试了此页面中描述的所有方法,但它们都不适合我。

原来可以通过修改matplotlibrc文件来解决。有一行:

后端:WXAgg

事实上,我们可以将后端更改为我们喜欢的任何内容,我将其更改为 TKAgg,这对我来说效果很好。

于 2014-01-25T16:55:51.657 回答
4

在导入任何 wx 模块之前选择你的 wx 版本

import wxversion
wxversion.select('2.8')

上面的代码应该在前面import wx

于 2011-04-22T15:28:38.010 回答
4

这发生在我没有在 site-packages 目录(默认为 c:\Python27\Lib\site-packages)中安装 wxversion.py 的 Windows x64 安装上。

您可以从 WX svn 存储库获取 wxversion.py 的副本: http ://svn.wxwidgets.org/viewvc/wx/wxPython/trunk/wxversion/wxversion.py?content-type=text%2Fplain&view=co

于 2013-05-10T13:40:57.610 回答
2

这个链接帮助了我 https://support.enthought.com/entries/22601196-wxPython-2-8-and-2-9

这是我解决问题的方法,希望将来对其他人有用

  1. 在终端中:gedit Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc

  2. 将“后端:WXAgg”行编辑为“后端:QtAgg”

  3. 保存并退出

于 2014-10-18T13:48:35.197 回答
1

我通过在 ~/.matplotlib/matplotlibrc 中将后端设置为 MacOSX 解决了这个问题:

后端:MacOSX

于 2013-07-12T16:42:17.280 回答
1

我自己也遇到了这个。这个(非常无用的)错误消息的一个潜在原因是如果您安装wx为单版本安装(INSTALL_MULTIVERSION=0运行时setup.py)。在这种情况下,模块wxversion不会被构建(或安装),因此 matplotlib 错误地假设所有的wx都丢失了。

这目前是wxWidgets( ) 的自制wxmac版本安装时的默认设置,带有选项--python.

在您的情况下(尽管晚了一年半),您需要确保它wxversion.py存在于/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages/. 如果没有,您需要使用上述标志集重新编译 wx。否则,您只需要设置您的$PYTHONPATH,使其也包含基本站点包目录:

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
于 2012-05-18T23:03:21.557 回答
1

我已经解决了这个问题:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
于 2012-07-03T04:14:33.893 回答
0

我通过查看 python 库中的站点包文件夹在 Windows 上解决了这个问题。在那里,应该有另一个名为 site-packages 的文件夹。在这个子文件夹中,有 wxversion 库。如果将此库复制到 python 中的 Lib 文件夹中,则应避免此导入错误。

于 2014-03-10T14:44:13.597 回答
0
sudo apt-get install python-wxtools

安装它。为我工作。

于 2016-02-26T04:49:50.220 回答