newbie question - remove a module from ram
Paul McGuire
ptmcg at austin.rr._bogus_.com
Mon May 10 10:55:39 EDT 2004
"Peter Otten" <__peter__ at web.de> wrote in message
news:c7nvr1$fsc$01$1 at news.t-online.com...
> Paul McGuire wrote:
>
> > "john fabiani" <jfabiani at yolo.com> wrote in message
> > news:4AAnc.6791$dH5.4946 at newssvr27.news.prodigy.com...
> >> Hi,
> >>
> >> I believe I have good understanding of import but it occurred to me
that
> >> I might want to remove an imported module. I.e I load a module into
ram
> >> and I no longer need the module. Modules just stays in ram? In the
> >> windows world I would "thisform.release()" and the garbage collector
> >> would release the ram. So did I miss something or is there no release
> >> method. How about a method within a class like destroy()?
> >>
> >> I just got to believe it's there???? But where?
> >> John
> >
> > Well, you were pretty close with calling something like .release(). Use
> > the del statement.
> >
> >>>> import random
> >>>> print random.random()
> > 0.475899061786
> >>>> del random
> >>>> print random.random()
> > Traceback (most recent call last):
> > File "<stdin>", line 1, in ?
> > NameError: name 'random' is not defined
> >>>>
>
> and then
>
> >>> import sys
> >>> sys.modules["random"].random()
> 0.43459738002826365
> >>>
>
> should make it clear that (next to) no memory is freed in the process.
>
> Peter
>
So then what if he follows up with:
del sys.modules["random"]
Are there any other dangling references to this module that would stymie the
garbage collector (assuming that the OP hasn't saved off his own reference
to the module)?
-- Paul
More information about the Python-list
mailing list