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