Package in Python

A package is a folder/directory that contains modules.
• It usually contains a special file __init__.py.
• Packages are used to organize multiple modules under a common namespace.

Example Folder Structure:

📁 project/
│
├── 📄 main.py
└── 📁 mypackage/
    ├── 📄 __init__.py
    ├── 📄 math_utils.py
    └── 📄 string_utils.py

mypackage/math_utils.py

Python

def multiply(a, b):
    return a * b

mypackage/string_utils.py

Python

def uppercase(text):
    return text.upper()

main.py

Python

from mypackage import math_utils, string_utils

print(math_utils.multiply(3, 4))       # Output: 12
print(string_utils.uppercase("hello"))  # Output: HELLO

✅ Here, mypackage is a package, containing modules math_utils and string_utils.

Using Modules Inside Packages

Python

from mypackage.math_utils import multiply
print(multiply(2, 5))  # Output: 10

Q: What is __init__.py? __init__.py is a special Python file that tells Python to treat a folder as a package. Without it, Python would see your folder as just a directory — not a package you can import from.

What You Can Put Inside __init__.py If we just want to mark a directory as a package, we can leave this file empty which is very common.

Python

# scripts/__init__.py
# empty file