how to import a name from a module-path?
Gary Herron
gherron at islandtraining.com
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:
DESCRIPTION
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