Skip to content Skip to sidebar Skip to footer

Importing Deeply Nested Modules In Python

Consider the following case in Python 3.6: basepackage |---__init__.py |---package |---__init__.py |---subpackage |---__init__.p

Solution 1:

For the first option (import basepackage.package.subpackage.module as aliased_module) to work, these conditions have to be met:

  • basepackage/__init__.py has to contain a line similar to from . import package (the name package has to be defined inside this basepackage/__init__.py file)
  • basepackage/package/__init__.py has to contain a line similar to from . import subpackage
  • basepackage/package/subpackage/__init__.py has to contain a line similar to from . import module

Note: the import statements inside the __init__.py files can also be absolute instead of relative paths.


For the second option (from basepackage.package.subpackage import module as aliased_module), it is enough if there are empty __init__.py files at each level, as long as these __init__.py files exist.

Post a Comment for "Importing Deeply Nested Modules In Python"