/  Technology   /  What’s the difference between a Python module and a Python package?

What’s the difference between a Python module and a Python package?


Module: It is a simple Python file that contains collections of functions and global variables and has a “.py” extension file. It’s an executable file and we have something called a “Package” in Python to organize all these modules.


Package: It is a simple directory which has collections of modules, i.e., a package is a directory of Python modules containing an additional __init__.py file. It is the  __init__.py  which maintains the distinction between a package and a directory that contains a bunch of Python scripts. A Package simply is a namespace. A package can also contain sub-packages.



__init__.py (constructor)
contact_details.py (module)
score_details.py (module)
college_details.py (module)



When we import a module or a package, Python creates a corresponding object which is always of type module. This means that the dissimilarity is just at the file system level between module and package.


Note: When we try to import a package, the sub-packages or modules aren’t often visible i.e., only the variables or functions or classes in the package’s __init__.py file are directly visible.


For example, in the datetime module, there’s a submodule named date which doesn’t get imported, if we just import the datetime module. We’ll have to import it separately.



from datetime import date



Leave a comment