Ошибка импорта wxPython
У меня возникли проблемы с поиском сообщения об ошибке в Python.
вчера, я установил python, используя последний пакет EPD, и wxPython2.9, используя пакет wxPython2.9-osx- cocoa -py2.7 для Mac OS.
Затем я добавил 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?
Ответы
Ответ 1
В Ubuntu 12.04 эту проблему можно решить, выполнив команду
sudo apt-get install libjpeg62
Я понимаю, что это может быть не полезно здесь, но я хотел документировать его где-то на interwebz, чтобы я мог найти его, когда снова столкнулся с этой проблемой, что, несомненно, произойдет.
Ответ 2
Я использую Ubuntu 13.10, Canopy 1.2 и PyCharm 3.0.2. При попытке использовать matlablib он всегда жалуется: "Matplotlib backend_wx и backend_wxagg требуют wxPython >= 2.8". Довольно уверен, что я использую wxPython 2.8. Затем я попробовал все методы, описанные на этой странице, но ни один из них не работает для меня.
Оказывается, его можно решить, изменив файл matplotlibrc. Существует строка:
backend: WXAgg
На самом деле мы можем изменить бэкэнд на все, что захотим, и я поменяю его на TKAgg, который отлично подходит для меня.
Ответ 3
Выберите версию wx перед импортом любых модулей wx
import wxversion
wxversion.select('2.8')
Вышеприведенный код должен быть до import wx
Ответ 4
Это случилось со мной при установке Windows x64, которая не установила wxversion.py в каталог сайтов-пакетов (c:\Python27\Lib\site-packages по умолчанию).
Вы можете получить копию wxversion.py из репозитория WX svn:
http://svn.wxwidgets.org/viewvc/wx/wxPython/trunk/wxversion/wxversion.py?content-type=text%2Fplain&view=co
Ответ 5
эта ссылка помогла мне
https://support.enthought.com/entries/22601196-wxPython-2-8-and-2-9
Вот как я исправил проблему, которая, надеюсь, будет полезна для других в будущем
Ответ 6
Я просто наткнулся на это сам. Одной из потенциальных причин этого (совершенно бесполезного) сообщения об ошибке является установка 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
таким образом, чтобы он включал также каталог базовых сайтов:
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
Ответ 7
Я решил с этим:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
Ответ 8
Я решил это, установив backend на MacOSX в ~/.matplotlib/matplotlibrc:
backend: MacOSX
Ответ 9
Я решил это на Windows, посмотрев в папке пакетов сайтов в библиотеке python. Там должна быть другая папка под названием site-packages. В этой подпапке есть библиотека wxversion. Если вы скопируете эту библиотеку в папку Lib в python, эту ошибку импорта следует предотвратить.
Ответ 10
sudo apt-get install python-wxtools
Установите его. Работал для меня.