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.py
Once you have done this, you should be able to perform various import
statements, such as the following:
import
graphics.primitive.line
from
graphics.primitive
import
line
import
graphics.formats.jpg
as
jpg
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 ...
Get Python Cookbook, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.