I am running my gtk app from python. I am deleting the canvas and running
gc.collect(). I still seem to have a reference to my memmapped data.

Any other hints?

-Mathew

On Thu, Nov 19, 2009 at 10:42 AM, John Hunter <jdh2...@gmail.com> wrote:

>
>
>
>
> On Nov 19, 2009, at 12:35 PM, Mathew Yeates <mat.yea...@gmail.com> wrote:
>
> Yeah, I tried that.
>
> Here's what I'm doing. I have an application which displays different
> dataset which a user selects from a drop down list. I want to overwrite the
> existing plot with a new one. I've tried deleting just about everything get
> matplotlib to let go of my data!
>
>
>
> What is everything?  Are you using pyplot or are you embedding mpl in a
> GUI?  If the latter, are you deleting the FigureCanvas?  You will also need
> to call gc.collect after deleting the mpl objects because we use a lot of
> circular references. Pyplot close does this automatically, but this does not
> apply to embedding.
>
> How are you running you app?  From the shell or IPython?
>
>
>
>
> Mathew
>
> On Thu, Nov 19, 2009 at 10:30 AM, John Hunter < <jdh2...@gmail.com>
> jdh2...@gmail.com> wrote:
>
>>
>>
>>
>>
>> On Nov 19, 2009, at 11:57 AM, Robert Kern < <robert.k...@gmail.com>
>> robert.k...@gmail.com> wrote:
>>
>> > On Thu, Nov 19, 2009 at 11:52, Mathew Yeates < <mat.yea...@gmail.com>
>> mat.yea...@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>NumPy-Discussion@scipy.org
>> > <http://mail.scipy.org/mailman/listinfo/numpy-discussion>
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>> _______________________________________________
>> NumPy-Discussion mailing list
>>  <NumPy-Discussion@scipy.org>NumPy-Discussion@scipy.org
>>  <http://mail.scipy.org/mailman/listinfo/numpy-discussion>
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to