Christopher Barker wrote:
 > Gary Ruben wrote:
 >> I just picked up a problem posted over on the numpy list. I noticed that
 >> from pylab import * is importing the oldnumeric-wrapper versions of
 >> zeros(), ones() and empty(), and presumably other things too, into the
 >> interactive namespace. Shouldn't it be picking up the versions from
 >> numpy's main namespace for interactive use?
 >
 > My understanding is that pylab (and Numerix) is maintaining backward
 > compatibility with itself, so the oldnumeric  form is the right one.
 >
 > Another reason NOT to EVER use "import *"

The way I tripped over this was using "ipython -pylab", which is doing 
this under the hood, so it's a little uglier in this case. What would be 
the effect on pylab using the newer numpy interactive namespace instead? 
I wonder whether matplotlib could check whether it has been imported by 
ipython interactively and import the newer namespace in this case, or 
whether there's a good argument for just dropping this little backward 
compatibility wart?

 > Before too long, hopefully we'll only have to deal with numpy.
 >
 > -Chris

I'll just cross-post Fernando (ipython) Perez's solution from the numpy 
list to aid anyone else who falls into this trap:

--

Until mpl drops support for the compatibility layers, you may want to
set up a simple pylab profile.  In ~/.ipython make a file called
'ipythonrc-pylab' consisting of:

#######
# Load default config
include ipythonrc

# Add single-line python statements here
execute from numpy import *
########

Since pylab does a 'from .num?. import *' this will ensure that the
top-level visible functions are the current numpy ones, not the
compatibility layer ones.  You then start things with:

ipython -pylab -p pylab

and you'll get:

In [1]: zeros?
Type:           builtin_function_or_method
Base Class:     <type 'builtin_function_or_method'>
Namespace:      Interactive
Docstring:
     zeros((d1,...,dn),dtype=float,order='C')

     Return a new array of shape (d1,...,dn) and type typecode with all
     it's entries initialized to zero.



Not ideal, but it's a little hack that will work in practice until we
finish crossing the muddy river of backwards compatibility.

Cheers,

f

--

Gary

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to