On Thu, 2007-01-11 at 00:01 -0700, Fernando Perez wrote: 
> On 1/10/07, Steve Chaplin <[EMAIL PROTECTED]> wrote:
> > On Mon, 2007-01-08 at 11:24 -0500, Darren Dale wrote:
> 
> > > I had to alter the following lines from backend_gtkcairo, from
> > >
> > > import matplotlib.backends.backend_cairo as be_cairo
> > > from   matplotlib.backends.backend_gtk import *
> > >
> > > to
> > >
> > > import backend_cairo as be_cairo
> > > from   backend_gtk import *
> > >
> > > in order to prevent the following traceback:
> > >
> > > Traceback (most recent call last):
> > >   File "/usr/bin/ipython", line 27, in ?
> > >     IPython.Shell.start().mainloop()
> > >   File "/usr/lib64/python2.4/site-packages/IPython/Shell.py", line 1034, 
> > > in
> > > start
> > >     return shell(user_ns = user_ns)
> > >   File "/usr/lib64/python2.4/site-packages/IPython/Shell.py", line 945, in
> > > __init__
> > >     shell_class=MatplotlibMTShell)
> > >   File "/usr/lib64/python2.4/site-packages/IPython/Shell.py", line 622, in
> > > __init__
> > >     on_kill=[mainquit])
> > >   File "/usr/lib64/python2.4/site-packages/IPython/ipmaker.py", line 90, 
> > > in
> > > make_IPython
> > >     embedded=embedded,**kw)
> > >   File "/usr/lib64/python2.4/site-packages/IPython/Shell.py", line 506, in
> > > __init__
> > >     user_ns,b2 = self._matplotlib_config(name,user_ns)
> > >   File "/usr/lib64/python2.4/site-packages/IPython/Shell.py", line 397, in
> > > _matplotlib_config
> > >     from matplotlib import backends
> > >   File 
> > > "/usr/lib64/python2.4/site-packages/matplotlib/backends/__init__.py",
> > > line 55, in ?
> > >     new_figure_manager, draw_if_interactive, show = pylab_setup()
> > >   File 
> > > "/usr/lib64/python2.4/site-packages/matplotlib/backends/__init__.py",
> > > line 23, in pylab_setup
> > >     globals(),locals(),[backend_name])
> > >
> > > File 
> > > "/usr/lib64/python2.4/site-packages/matplotlib/backends/backend_gtkcairo.py",
> > > line 11, in ?
> > >     import matplotlib.backends.backend_cairo as be_cairo
> > > AttributeError: 'module' object has no attribute 'backends'
> >
> > The original matplotlib code is correct, you should be editing IPython
> > and correcting their bug!
> 
> Well, I'd be delighted to correct the ipython bug, if only I
> understood exactly what the problem was...  As far as I can see, that
> code in ipython is simply calling
> 
>         # Initialize matplotlib to interactive mode always
>         import matplotlib
>         from matplotlib import backends
> 
> inside a function (the _matplotlib_config method).  I don't see a bug
> in that, but if you provide some pointers, I'll be happy to fix any
> issues that are on ipython's side of the fence.

Darren reported a "bug" in backend_gtkcairo.py which he has "fixed". My
view is that the lines
from matplotlib.backends import backend_cairo
from matplotlib.backends.backend_gtk import *
work fine when called from the Python prompt. They are using the
absolute package path and are correct and should not be "fixed" to use
relative imports (which is bad style). So if there is a bug it is
elsewhere and from the traceback it looked like ipython is involved.

The traceback shows that this code is being executed
# a hack to keep old versions of ipython working with mpl
if 'IPython.Shell' in  sys.modules:
    new_figure_manager, draw_if_interactive, show = pylab_setup()

which is ipython-specific code.
I don't usually use IPython, but I installed it today and ran a few
simple matplotlib plots with the GTKCairo backend and they worked OK! So
I can't offer more info, perhaps Darren can produce a minimal test case
to isolate the problem.

Steve

Send instant messages to your online friends http://au.messenger.yahoo.com 


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to