Erreur d'importation wxPython
Je vais avoir de la difficulté à trouver un message d'erreur en Python.
hier, j'ai installé python à l'aide de la dernière EPD paquet, et wxPython2.9 à l'aide de la wxPython2.9-osx-cacao-py2.7 pour Mac OS.
J'ai ensuite ajouté wx pour mon 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
mais lorsque j'essaie d'exécuter des trucs, j'obtiens cette erreur:
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
Je peux réussir à l'importation wx, donc je n'ai pas pas quel est le problème.
Ai-je raté quelque chose dans le PYTHONPATH?
source d'informationauteur Gibbs
Vous devez vous connecter pour publier un commentaire.
Dans Ubuntu 12.04, ce problème peut être résolu en exécutant la commande
Je réalise que j'ai peut-être pas utile ici, mais je voulais document quelque part sur l'interwebz donc je peux le trouver quand j'ai rencontré ce problème à nouveau moi-même, qui va sans doute arriver.
Je suis sous Ubuntu 13.10, Canopy 1.2, et PyCharm 3.0.2. Lorsque vous essayez d'utiliser matlablib, il se plaint toujours "Matplotlib backend_wx et backend_wxagg besoin wxPython >=2.8".Assez sûr que je suis avec wxPython 2.8. Ensuite, j'ai essayé toutes les méthodes décrites dans cette page, mais aucun des deux ne fonctionne pour moi.
Il s'avère qu'il peut être résolu en modifiant matplotlibrc fichier. Il y a une ligne:
En fait, nous pouvons changer le backend à ce que l'on aime, et je l'ai changer pour TKAgg, qui fonctionne très bien pour moi.
Sélectionnez votre wx version avant d'importer tout wx modules
import wxversion
wxversion.select('2.8')
Le code ci-dessus devrait venir avant
import wx
Ce qui m'est arrivé sur un Windows x64 installation qui n'a pas l'installer wxversion.py dans le site-packages répertoire (c:\Python27\Lib\site-packages par défaut).
Vous pouvez obtenir une copie de wxversion.py à partir de l'WX dépôt svn:
http://svn.wxwidgets.org/viewvc/wx/wxPython/trunk/wxversion/wxversion.py?content-type=text%2Fplain&view=co
ce lien m'a aidé
https://support.enthought.com/entries/22601196-wxPython-2-8-and-2-9
Voici comment j'ai résolu le problème, qui je l'espère sera utile pour d'autres personnes à l'avenir
Dans le Terminal: gedit Enthought/Canopy_64bit/Utilisateur/lib/python2.7/site-packages/matplotlib/mpl-données/matplotlibrc
Modifier la ligne "backend : WXAgg" dans le "backend : QtAgg"
Enregistrer et quitter
Je viens de tomber sur moi-même. L'une des causes potentielles de cette (assez inutile) message d'erreur si vous avez installé
wx
comme une seule installation de la version (INSTALL_MULTIVERSION=0
lors de l'exécution desetup.py
). Dans ce cas, le modulewxversion
ne pas se construit (ou installées) et matplotlib à tort que touswx
est manquant.Actuellement, il est le réglage par défaut dans les installations de la homebrew version de wxWidgets (
wxmac
) avec l'option--python
.Dans votre cas (quoique un an et demi de retard), vous devez vous assurer que
wxversion.py
existe au sein de/usr/local/lib/wxPython-2.9.1.1/lib/python2.7/site-packages/
. Si elle n'est pas le cas, vous auriez besoin de recompiler wx avec l'indicateur défini ci-dessus. Sinon, il vous suffit de définir vos$PYTHONPATH
tel qu'il inclut la base du site-packages répertoire, trop:J'ai résolu avec cette:
J'ai résolu ce problème en définissant le backend pour MacOSX dans ~/.matplotlib/matplotlibrc:
backend : MacOSX
J'ai résolu ce problème sur Windows en consultant le site de paquets dossier dans la bibliothèque python. Là, il devrait y avoir un autre dossier intitulé site-packages. Dans ce sous-dossier, il y a le wxversion de la bibliothèque. Si vous copiez cette bibliothèque dans le dossier Lib python, cette erreur d'importation doit être évitée.
L'installer. A travaillé pour moi.