Python: import the containing package

guy picture guy · Jan 12, 2009 · Viewed 33.4k times · Source

In a module residing inside a package, i have the need to use a function defined within the __init__.py of that package. how can i import the package within the module that resides within the package, so i can use that function?

Importing __init__ inside the module will not import the package, but instead a module named __init__, leading to two copies of things with different names...

Is there a pythonic way to do this?

Answer

Brian Clapper picture Brian Clapper · Jan 12, 2009

Also, starting in Python 2.5, relative imports are possible. e.g.:

from . import foo

Quoting from http://docs.python.org/tutorial/modules.html#intra-package-references:


Starting with Python 2.5, in addition to the implicit relative imports described above, you can write explicit relative imports with the from module import name form of import statement. These explicit relative imports use leading dots to indicate the current and parent packages involved in the relative import. From the surrounding module for example, you might use:

from . import echo
from .. import formats
from ..filters import equalizer