Chapter 10. Modules and Packages
Modules and packages are the core of any large project, and the Python installation itself.
This chapter focuses on common programming techniques involving modules and packages,
such as how to organize packages, splitting large modules into multiple files,
and creating namespace packages. Recipes that allow you to customize the
operation of the import statement itself are also given.
10.1. Making a Hierarchical Package of Modules
Problem
You want to organize your code into a package consisting of a hierarchical collection of modules.
Solution
Making a package structure is simple. Just organize your code as you wish on the file-system and make sure that every directory defines an __init__.py file. For example:
graphics/
__init__.py
primitive/
__init__.py
line.py
fill.py
text.py
formats/
__init__.py
png.py
jpg.pyOnce you have done this, you should be able to perform various import statements, such as the following:
importgraphics.primitive.linefromgraphics.primitiveimportlineimportgraphics.formats.jpgasjpg
Discussion
Defining a hierarchy of modules is as easy as making a directory
structure on the filesystem. The purpose of the __init__.py files
is to include optional initialization code that runs as different
levels of a package are encountered. For example, if you have the
statement import graphics, the file graphics/__init__.py will be imported and form the contents
of the graphics namespace. For an import such as import graphics.formats.jpg, the ...