Neat Trick for Loading Modules with unknown Name

Peter Hansen peter at
Mon Mar 22 13:36:30 CET 2004

Brian Quinlan wrote:

>>I've found an easy and clean way to load and use modules that are loaded
>>after a program has started when the name of the module can not be
>>modname = 'usermodname'
>># load the module
>>exec('import ' + modname)
>># alias the module
>>usersmod = eval(modname)
> Do you really think that is easier than:
> usersmod = __import__(modname)

__import__ doesn't handle packages, right?  The above with exec()
appears, unfortunately, to be the simplest approach(*) to handling 
*arbitrary* imports, even if they are nested as in xml.sax.whatever.

* The simplest, provided you're doing it once.  Otherwise, of course,
you would just write a function to do the job, and reuse that instead.
Then the dangers of the exec() approach are bypassed.


More information about the Python-list mailing list