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
-- http://mail.python.org/mailman/listinfo/python-list
