Ошибка импорта wxPython - программирование
Подтвердить что ты не робот

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

4b9b3361

Ответ 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

Ответ 5

эта ссылка помогла мне 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

  • Отредактируйте строку "backend: WXAgg" в "backend: QtAgg"

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

Ответ 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

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