[英]wxPython import error
我在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中遺漏了什么?
在Ubuntu 12.04中,可以通過運行該命令來解決此問題
sudo apt-get install libjpeg62
我意識到這可能在這里沒有用,但是我想在teh interwebz上的某處記錄它,所以當我再次遇到這個問題時我可以找到它,這無疑會發生。
我使用的是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,這對我來說效果很好。
在我沒有在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
在導入任何wx模塊之前選擇您的wx版本
import wxversion
wxversion.select('2.8')
上面的代碼應該在import wx
之前
這個鏈接幫助了我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
將“后端:WXAgg”行編輯為“后端:QtAgg”
保存並退出
我自己就碰到了這個。 如果您將wx
安裝為單版本安裝(運行setup.py
時為INSTALL_MULTIVERSION=0
),則此(非常無用)錯誤消息的一個潛在原因是。 在這種情況下,模塊wxversion
不會構建(或安裝),因此matplotlib錯誤地假定所有wx
都缺失。
這當前是自制版本的wxWidgets( wxmac
)安裝的默認設置,帶有選項--python
。
在你的情況下(雖然遲了一年半),你需要確保在/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages/
存在wxversion.py
。 如果沒有,則需要使用上面的標志集重新編譯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
我用這個解決了:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
我通過在〜/ .matplotlib / matplotlibrc中將后端設置為MacOSX來解決這個問題:
后端:MacOSX
我通過查看python庫中的站點包文件夾在Windows上解決了這個問題。 在那里,應該有另一個名為site-packages的文件夾。 在這個子文件夾中,有一個wxversion庫。 如果您將此庫復制到python中的Lib文件夾中,則應避免此導入錯誤。
sudo apt-get install python-wxtools
安裝它。 為我工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.