Reinhold Birkenfeld wrote:
Peter Hansen wrote:
Reinhold Birkenfeld wrote:
Rafal Kleger-Rudomin wrote:
>I'm looking for a command to reset interpreter's environment i.e. unload
>all modules, delete variables etc.
What about something like this:
def clear(keep=("__builtins__", "clear")):
keeps = {}
for name, value in globals().iteritems():
if name in keep: keeps[name] = value
globals().clear()
for name, value in keeps.iteritems():
globals()[name] = value
Well, that only removes all the references from the
globals of the current module. Is that all that's
wanted?
Note that threads that are already running will not be
removed, nothing in sys.modules will be removed, and
there are doubtless a few other things in the interpreter
that aren't quite so easy to get at.
Right. So I agree with you on ^D.
Well, Control-D just exits python, at least on cygwin. That's not what I
want.
I should have explained the background of my question:
I write some Python app on Windows using PythonWin IDE. It has own
Python interpreter window, when I run or debug my app, it runs in that
interpreter environment. But, after the first run, the environment is
polluted with modules, vars etc.
What I can do at this moment:
- Exit IDE and run again every time I run/debug my app.
- Run my app in external interpreter (but then I cannot debug with IDE)
Another thing:
Because of this 'cleaning problem', I write all my classes in the main
file. I should put them in a module. But then I have to manually reload
the module each time I edit it. Moreover, reload() also does not do the
job perfectly. So a 'clean' command would be handy.
Do you know any developers' guide addressing such work practices,
practical tricks, project organisation? I have a book 'Python 2.1
Bible', it is cool but does not go so far.
Best Regards,
Rafal