[Numpy-discussion] matplotlib is breaking numpy

John Hunter jdh2358@gmail....
Thu Nov 19 12:30:38 CST 2009





On Nov 19, 2009, at 11:57 AM, Robert Kern <robert.kern@gmail.com> wrote:

> On Thu, Nov 19, 2009 at 11:52, Mathew Yeates <mat.yeates@gmail.com>  
> wrote:
>> There is definitely something wrong with matplotlib/numpy. Consider  
>> the
>> following
>>> from numpy import *
>>> mydata=memmap('map.dat',dtype=float64,mode='w+',shape=56566500)
>>> del mydata
>>
>> I can now remove the file map.dat with (from the command line) $rm  
>> map.dat
>>
>> However
>> If I plot  mydata before the line
>>> del mydata
>>
>>
>> I can't get rid of the file until I exit python!!
>> Does matplotlib keep a reference to the data?
>
> Almost certainly.
>
>> How can I remove this
>> reference?
>
> Probably by deleting the plot objects that were created and close all
> matplotlib windows referencing the data. If you are using IPython, you
> should know that many of the returned objects are kept in Out, so you
> will need to clear that. There might be some more places internal to
> matplotlib, I don't know.
>

Closing the figure window containg the data *should* be enough. In  
pylab/pyplot, this also triggers a call to gc.collect.




> With some care, you can use gc.get_referrers() to find the objects
> that are holding direct references to your memmap.
>
> -- 
> Robert Kern
>
> "I have come to believe that the whole world is an enigma, a harmless
> enigma that is made terrible by our own mad attempt to interpret it as
> though it had an underlying truth."
>  -- Umberto Eco
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion


More information about the NumPy-Discussion mailing list