So far we have learned about Python modules and how different functions, classes, and statements are defined inside them.
In this article, you will learn in detail about Python packages, how different modules are bundled together to create packages, how to import Python packages and many other things.
|Python Package: Introduction|
|How to create a Python package?|
|How to import a Python package?|
Python Packages: Introduction
A Python package in simple words is a directory that contains Python files.
Just like a directory has sub-directories and those sub-directories also have files inside, a Python package also has sub-packages and those sub-packages again have different modules defined inside.
A directory with Python files can only be considered as Python package if the directory has a file with name
So every directory having a file
__init__.py is considered Python package and the sub-directories having the file
__init__.py are considered sub-packages.
__init__.py can be empty or contain code to initialize the package as it’s the first file that is executed while importing a package.
How to create a Python Package?
Creating file is like creating directories and dub-directories with a file
__init__.py placed inside.
Example 1: let’s create a simple package
car containing a simple module display.py.
Here is the structure for creating this package.
- Create a directory
carto create a package of the same name.
- Create a file
__init__.pyand place it inside directory car so that it can be considered a Python package.
- Create a module inside directory
car.The code for module display.py.
#display.py def display(): print ('This is a car.')
Before discussing how to import Python packages, let’s take another example and create a Python package with sub-packages.
Example 2: Create a package named
biology as its sub-packages.
Here is the structure.
- Create a directory
scienceto create a package of the same name.
- Create a file
__init__.pyand place it inside directory
scienceso that it can be considered a Python package.
- Create sub-directories physics, chemistry, and biology and place
__init__.pyinside each sub-directories so that they can be considered Python sub-packages.
- Now finally create the corresponding modules inside each sub-packages.physics/display.py
#display.py def display(): print ('This is physics.')
#display.py def display(): print ('This is chemistry.')
#display.py def display(): print ('This is biology.')
Now that we have created Python packages, let’s learn about importing them.
How to import Python packages?
We can import Python packages using import statement and dot
If we were to import the package
car that we created in example 1, then we have to import it like:
>>> import car
Now to import a function defined inside a module of this package
car, here is the way.
>>> from car import display >>> display.display() #calling function defined in the module This is a car.
Another way of importing the module in a package is
>>> import car.display >>> display.display() This is a car.
To import Python packages with sub-packages
In example 2, we created a package
science with sub-packages. Here is how we import modules and packages in such cases.
>>> import science.physics.display >>> display.display() This is physics.
This is the way to import modules from sub-packages.
What if we want to import functions inside the modules defined inside sub-packages?
Here is how it is done.
>>> #importing display function from display module inside sub-package chemistry >>> from science.chemistry.display import display >>> display() This is chemistry.