Problem with Dynamically unloading a module

2009-12-23 Thread lordofcode
Hi All

Not an expert in Python, so sorry if this sounds like a silly
question.
I went through other few threads in the mailing list but they are not
helping me much.
I have run into a problem related to dynamically loading and unloading
a module.
I need to dynamically load a module and unload it and load another
module.

For example I have many files(All files in Python are modules right?)
like mobile_1.py ,mobile_2.py, mobile_3.py  etc.. in my project folder
which contains classes and methods with same name but different
functionality.(am afraid I cannot change this structure as these files
are generated randomly by the user)

So initially when my program starts I have to load a default module. I
do this as follows:
##
>>MODULE_name = "mobile_1"
>>exec "from "+MODULE_name+" import *"
##
And use the methods defined in "mobile_1.py" file

Now as the application continues , I may have to use the methods
defined in "mobile_2.py" or "mobile_3.py" etc instead of the
previously loaded module,which I incorrectly try to do as below:

>>MODULE_name = "mobile_2"
>>exec "from "+MODULE_name+" import *"
#
The above import does not have any impact and the methods called from
my application still pertain to mobile_1.py as its still in the
current namespace(?).
I tried below code with del(), reload() etc but could not figure it
out.
###Code to unload a dll
>>del sys.modules[MODULE_name]#==> does not delete the reference in 
>>namespace


1)How do I unload a module dynamically and completely remove the
references in the module so a new module with same name references can
be loaded?
2)Are there any alternative way to do the above requirement?
Currently I am working around by restarting the whole initial setup
for each new module which is unnecessary waste.Can I avoid this
"reset"?

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Problem with Dynamically unloading a module

2009-12-23 Thread lordofcode
Hi All,

Thanks you all for your replies ,cleared quiet a few doubts about
importing modules and namespace references .
Currently am going with static importing of all modules. But it may
not be efficient in future as the number of interchangeable modules
that I have to import may run in 30-40's.(Basically this Python code
is part of larger GSM Testing project where each module represents one
model of GSM mobile phone and this number keeps growing). So changing
the design will be a last resort.
But am trying to reduce the number of objects(classes,methods etc) in
each module so importing all 30-40 modules do not impact much.

Anyway am trying out all the mentioned tricks here and get back to you
with any doubts.

Thanks again
Ajay Baragur
-- 
http://mail.python.org/mailman/listinfo/python-list