Ошибка импорта wxPython - PullRequest
       25

Ошибка импорта wxPython

12 голосов
/ 25 февраля 2011

У меня проблемы с выяснением сообщения об ошибке в 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?

Ответы [ 10 ]

15 голосов
/ 22 мая 2012

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

sudo apt-get install libjpeg62

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

5 голосов
/ 25 января 2014

Я использую 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

На самом деле мы можем изменить backend на то, что нам нравится, и я изменил его на TKAgg, который прекрасно работает длямне.

4 голосов
/ 10 мая 2013

Это произошло со мной при установке 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

4 голосов
/ 22 апреля 2011

Выберите свою версию wx перед импортом любых модулей wx

import wxversionwxversion.select('2.8')

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

2 голосов
/ 18 октября 2014

эта ссылка помогла мне https://support.enthought.com/entries/22601196-wxPython-2-8-and-2-9

Вот как я исправил проблему, которая, я надеюсь, будет полезна другим в будущем

  1. В терминале: gedit Enthought / Canopy_64bit / Пользователь / lib / python2.7 / site-packages / matplotlib / mpl-data / matplotlibrc

  2. Изменить строку "backend: WXAgg" на "backend: QtAgg"

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

1 голос
/ 12 июля 2013

Я решил эту проблему, установив серверную часть MacOSX в ~ / .matplotlib / matplotlibrc:

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

1 голос
/ 03 июля 2012

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

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
1 голос
/ 19 мая 2012

Я просто столкнулся с этим сам.Одна из возможных причин этого (совершенно бесполезного) сообщения об ошибке - если вы установили 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 так, чтобы он также включал в себя базовый каталог 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
0 голосов
/ 26 февраля 2016
sudo apt-get install python-wxtools

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

0 голосов
/ 10 марта 2014

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

...