Python Tutorial Series - Packages

Python modules can be organized into packages. A package is a namespace which contains a set of modules. Packages are useful for organizing modules, especially when an application is large and contains a lot of modules. To create a package, create a directory and add python files to it. The directory must contain an __init__.py file in order to be recognized as a package.

Example:



pkg1
  __init__.py
  mod1.py
  mod2.py
app.py


Modules, which are part of a package, can then be imported using the dot notation:



import pkg1.mod1


Modules can also be imported as follows:



from pkg1 import mod1


Specific module members can be directly imported:



from pkg1.mod1 import do_something

or

from pkg1.mod1 import do_something as do


The __init__.py file defines package initialization code. It can be empty or define a list of modules which are imported on initialization. This can be done individually:



import pkg1.mod1
import pkg1.mod2



or using __all__ to define a list of modules to import:



__all__ = ["mod1", "mod2"]


Using


from pkg1 import *


would then import mod1 and mod2 at once.


Packages can contain subpackages by creating sub directories:



pkg1
  __init__.py
  subpkg1
    __init__.py
    mod1.py
    mod2.py
  subpkg2
    __init__.py
    moda.py
    modb.py


moda would be imported as:



import pkg1.subpkg2.moda


Each subpackage also needs to contain in __init__.py file, which may or may not be empty.



Full Example:



app.py:



import pkg1
from pkg1 import mod2

pkg1.mod1.print_mod_name()
mod2.print_mod_name()


pkg1/__init__.py:



import pkg1.mod1
import pkg1.mod2


pkg1/mod1.py:



def print_mod_name():
    print('Mod 1')


pkg1/mod2.py:



def print_mod_name():
    print('Mod 2')




More Python




Comments