how to import a name from a module-path?

Gary Herron gherron at
Tue Jun 16 13:43:33 EDT 2009

thebjorn wrote:
> I'm storing the path to functions in a database and now I'd like to
> get a reference so I can execute them.
> I looked briefly at the imp module and got very confused...  Currently
> I'm doing this:
>   def import_object(path):
>       module, obj = path.rsplit('.', 1)
>       exec "from rootpkg.%s import %s as fn" % (module, obj)
>       return fn
>   function = import_object('mypackage.mymodule.myfunction')
> this is happening in a trusted environment, so I'm not worried about
> malicious code.
> Are there more elegant ways of doing this (ie. without exec)?

Yes.  Look at the __import__ builtin function, and if that's not enough 
functionality, look at the module names imp, which provides 
documentation starting with this bit:

    This module provides the components needed to build your own
    __import__ function.

Both are available in Python2.x and Python3.x

Gary Herron

> -- bjorn

More information about the Python-list mailing list