[Tutor] Passing a variable to 'import'

Rob McGee i812@iname.com
Wed, 19 Dec 2001 23:37:23 -0600


On Wed, Dec 19, 2001 at 11:26:01PM -0500, Chris Keelan wrote:
> >>moduleName="someModule"
> 
> >>def import_module(someModule):
>         import someModule
> 
> Of course that gives me the following output:
> 
> >>Traceback (most recent call last):
> >>  File "<stdin>", line 1, in import_module
> >>ImportError: No module named someModule

Sounds like a job for my once-beloved "exec" statement. :)

{code}
moduleName = 'someModule'

def import_module(someModule):
  """Imports a module (someModule as string)"""
  exec 'import ' + someModule

import_module(moduleName)
{/code}

But don't listen to me, I'm a beginner. :) IIRC there's also the
execfile() function which might do it more elegantly. See the
lib/built-in-funcs.html in your documentation (or online at
www.python.org/doc/).

HTH, sorry if it doesn't :) ...
    Rob - /dev/rob0