Last modified: May 10, 2025 By Alexander Williams
Python Module System Guide
Python's module system helps organize code into reusable units. Modules are files containing Python definitions and statements. They make code easier to manage.
Table Of Contents
What Are Python Modules?
A module is a file with a .py extension. It can contain functions, classes, and variables. Modules help break large programs into smaller files.
Here's a simple module example:
# mymodule.py
def greet(name):
return f"Hello, {name}!"
version = "1.0"
How Python Imports Modules
Use the import
statement to load modules. Python searches for modules in specific locations. The search path includes the current directory and installed packages.
Basic import example:
import mymodule
print(mymodule.greet("Alice")) # Output: Hello, Alice!
print(mymodule.version) # Output: 1.0
For more details, see our Python Import Statements Guide.
Module Namespaces
Each module has its own namespace. This prevents naming conflicts. Attributes are accessed using dot notation.
Namespace example:
import math
print(math.pi) # Output: 3.141592653589793
Different Import Methods
Python offers several ways to import modules:
import module
- Basic importfrom module import name
- Import specific namesimport module as alias
- Import with alias
Example of alternative imports:
from mymodule import greet
print(greet("Bob")) # No need for module prefix
Learn best practices in our Python Import vs Import: Best Practices guide.
Python's Import System
Python's import system is powerful. It uses finders and loaders to locate and load modules. The system is extensible.
Key components:
sys.path
- Module search pathimportlib
- Implementation of import- Module cache - Stores loaded modules
For advanced topics, see the Python Import System Guide.
Package Organization
Packages are collections of modules. They use __init__.py files. Packages create hierarchical namespaces.
Example package structure:
mypackage/
__init__.py
module1.py
module2.py
subpackage/
__init__.py
module3.py
Special Module Attributes
Modules have special attributes:
__name__
- Module name__file__
- Path to module file__package__
- Package name
Example usage:
import mymodule
print(mymodule.__name__) # Output: mymodule
print(mymodule.__file__) # Output: path/to/mymodule.py
Module Execution
Modules can be run as scripts. Use if __name__ == "__main__":
to control execution. This makes modules more flexible.
Example:
# mymodule.py
def greet(name):
return f"Hello, {name}!"
if __name__ == "__main__":
print(greet("World"))
Built-in Modules
Python comes with many built-in modules. These provide useful functionality. Examples include math
, os
, and sys
.
Built-in module example:
import os
print(os.getcwd()) # Output: current working directory
Conclusion
Python's module system is essential for code organization. It helps create maintainable programs. Understanding modules makes you a better Python programmer.
Use modules to structure your code logically. Follow best practices for imports. Leverage packages for complex projects.