Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Importing a submodule given a module object

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.

like image 926
Ram Rachum Avatar asked Apr 16 '10 15:04

Ram Rachum


1 Answers

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.

like image 122
Ignacio Vazquez-Abrams Avatar answered Oct 09 '22 15:10

Ignacio Vazquez-Abrams