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