OK, but right now MPL is broken with my version of wxversion, which is the
one shipped by default in Ubuntu. So it is broken for a lot of user.
Are you sure? Could you be pulling in some other wxversion? The only
other person reporting this problem so far is Tony Yu. I am now on
jaunty, and my wxversion has AlreadyImportedError. What version of
ubuntu are you using, and what is the full wx version that it includes?
Ha, interesting:
$ ipython
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)
Type "copyright", "credits" or "license" for more information.
IPython 0.10.bzr.r1163 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: import wxversion
In [2]: wxversion.__file__
Out[2]: '/usr/lib/python2.6/dist-packages/wx-2.6-gtk2-unicode/wxversion.pyc'
So, if wx2.6 is installed (I have 2.8 installed too), we run into these
problem.
Also, it is interesting to see that the older wxversion gets imported.
That does defeat the purpose of wxversion :). It means that you can't
have multiple versions of wx installed.
It seems wrong for me to require the users to upgrade wxversion while
there is a solution that works, eventhough it may not be exactly what you
want.
The solution you propose doesn't work. It completely defeats the
version check.
In a way it does. So we can add a check:
"if 'wx' in sys.module:"
to replace the "AlreadyImportedError", it is clearly bug ware.
One solution is to do bugware with hasattr(wxversion, 'AlreadyImportedError')
Committed to svn. Please check it.
Certainly does work betters. Also, the "AlreadyImported" problem is
caught elsewhere if I preimport an older version of wx:
File "/home/varoquau/dev/matplotlib/lib/pylab.py", line 1, in <module>
from matplotlib.pylab import *
File "/home/varoquau/dev/matplotlib/lib/matplotlib/pylab.py", line 244,
in <module>
from matplotlib.pyplot import *
File "/home/varoquau/dev/matplotlib/lib/matplotlib/pyplot.py", line 76,
in <module>
new_figure_manager, draw_if_interactive, show = pylab_setup()
File
"/home/varoquau/dev/matplotlib/lib/matplotlib/backends/__init__.py", line
25, in pylab_setup
globals(),locals(),[backend_name])
File
"/home/varoquau/dev/matplotlib/lib/matplotlib/backends/backend_wxagg.py",
line 23, in <module>
import backend_wx # already uses wxversion.ensureMinimal('2.8')
File
"/home/varoquau/dev/matplotlib/lib/matplotlib/backends/backend_wx.py",
line 137, in <module>
raise ImportError(missingwx)
ImportError: Matplotlib backend_wx and backend_wxagg require wxPython >=2.8
Thanks for your fix.
Gaël
···
On Fri, Jul 10, 2009 at 09:41:30AM -1000, Eric Firing wrote: