Похоже, это то, что вы хотите:
def import_path(name):
modname, _, attr = name.rpartition('.')
if not modname:
# name was just a single module name
return __import__(attr)
m = __import__(modname, fromlist=[attr])
return getattr(m, attr)
Чтобы заставить его работать с Python 2.5 и более ранними версиями, где __import__
не принимает аргументы ключевых слов, вам нужно будет использовать:
m = __import__(modname, {}, globals(), [attr])