ошибка импорта 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?


person Gibbs    schedule 25.02.2011    source источник


Ответы (10)


В Ubuntu 12.04 эту проблему можно решить, выполнив команду

sudo apt-get install libjpeg62

Я понимаю, что это может быть бесполезно здесь, но я хотел задокументировать это где-нибудь на Interwebz, чтобы я мог найти его, когда снова столкнусь с этой проблемой, что, несомненно, произойдет.

person Chad    schedule 22.05.2012
comment
проблема возникла 12.04 с EPD 7.3 и решена выше. молодец @Чад - person DrSAR; 23.06.2012
comment
На самом деле я переключился на Fedora и столкнулся с похожими проблемами с libpng... Описание ошибки EPD постоянно хорошо объясняет, какой пакет (или отсутствие пакета) вызывает проблему. - person Chad; 30.01.2013

Я использую 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, что меня вполне устраивает.

person Jie Fu    schedule 25.01.2014
comment
Можно поподробнее об этом решении? У меня также есть Ubuntu 13.10 и ошибка: ImportError: Matplotlib backend_wx and backend_wxagg require wxPython >=2.8. Согласно Canopy, у меня установлен wxPython 2.8.10.1-3. Примечание. Код, который я выполнял, работал, когда у меня была установлена ​​та же версия Enthought на Ubuntu 12.04. Примечание. Я также нашел это сообщение службы поддержки об ошибке: support.enthought .com/entries/22601196-wxPython - person alexgophermix; 13.03.2014
comment
Ах, вы имеете в виду следующий файл: /home/YOU/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc? Кажется, это работает до сих пор. Есть ли какие-либо другие проблемы, которые могут возникнуть из-за переключения серверной части? - person alexgophermix; 13.03.2014
comment
Привет, alexgophermix, других проблем у меня пока не было. - person Jie Fu; 15.03.2014

Выберите свою версию wx, прежде чем импортировать какие-либо модули wx.

import wxversion
wxversion.select('2.8')

Приведенный выше код должен стоять перед import wx

person ravihansa3000    schedule 22.04.2011

Это случилось со мной при установке Windows x64, которая не устанавливала wxversion.py в каталоге site-packages (по умолчанию 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

person Lee Kamentsky    schedule 10.05.2013

эта ссылка помогла мне 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. Измените строку «backend: WXAgg» на «backend: QtAgg».

  3. Сохранить и выйти

person Jingkun    schedule 18.10.2014
comment
Да, кажется, что бэкэнд QtAgg для matplotlib существует - person Ghita; 15.03.2015

Я просто столкнулся с этим сам. Одной из возможных причин появления этого (весьма бесполезного) сообщения об ошибке является установка 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
person mbauman    schedule 18.05.2012
comment
Для доморощенного установите wxpython с включенной поддержкой многоверсионности. Вы можете запустить команду brew edit wxwidgets . Затем измените строку INSTALL_MULTIVERSION=0 на INSTALL_MULTIVERSION=1. Затем сохраните рецепт и продолжите установку. - person harijay; 21.10.2012

Я решил с этим:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
person scrax    schedule 03.07.2012

Я решил это, установив бэкэнд на MacOSX в ~/.matplotlib/matplotlibrc:

серверная часть: MacOSX

person Federico    schedule 12.07.2013

Я решил это в Windows, просмотрев папку пакетов сайта в библиотеке python. Там должна быть еще одна папка с названием site-packages. В этой подпапке находится библиотека wxversion. Если вы скопируете эту библиотеку в папку Lib в python, эта ошибка импорта должна быть предотвращена.

person Epsilon0    schedule 10.03.2014

sudo apt-get install python-wxtools

Установите его. Работал на меня.

person Kanaga valli    schedule 26.02.2016