views:

50

answers:

2

I am given a module as an object, and I need to import a submodule from it. Like this:

import logging
x = logging

Now I want to import logging.handlers using only x and not the name "logging". (This is because I am doing some dynamic imports and won't know the name of the module.)

How do I do this? If I do import x.handlers it fails.

A: 

You can use built-in function __import__: http://docs.python.org/library/functions.html#import

Jan Tojnar
+3  A: 

Try:

__import__('%s.handlers' % x.__name__)

Note that this will return a reference to logging, which you probably won't care about. It will create x.handlers though.

Ignacio Vazquez-Abrams