簡體   English   中英

wxPython導入錯誤

[英]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

這是我如何解決問題,我希望將來對其他人有用

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

  2. 將“后端:WXAgg”行編輯為“后端:QtAgg”

  3. 保存並退出

我自己就碰到了這個。 如果您將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM