how to import a name from a module-path?
gherron at islandtraining.com
Tue Jun 16 13:43:33 EDT 2009
> 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
Both are available in Python2.x and Python3.x
> -- bjorn
More information about the Python-list