Fundamentals 5 min read

Master Python Packaging: Build, Structure, and Distribute Your Own Module

This guide walks you through the fundamentals of creating a Python package, from setting up the directory and __init__.py file to adding modules, configuring setup.py, and using the package locally or via installation, complete with code examples.

Code Mala Tang
Code Mala Tang
Code Mala Tang
Master Python Packaging: Build, Structure, and Distribute Your Own Module

Packaging in Python is a powerful way to organize and reuse code, especially for large projects. This article explains step‑by‑step how to create a Python package and use it effectively.

What Is a Python Package?

A Python package is a directory that contains a special file __init__.py , allowing Python to recognize the directory as a package and helping you organize related modules and functions for better maintainability.

Steps to Create a Package

Step 1: Set Up the Package Directory

Create a directory named mypackage :

<code>mkdir mypackage</code>

Inside mypackage , create an empty __init__.py file (or add package‑level initialization code).

<code>mypackage/
├── __init__.py</code>

Step 2: Add Modules to the Package

Add two modules, module1.py and module2.py :

<code>mypackage/
├── __init__.py
├── module1.py
├── module2.py</code>

Write the following code in each module:

module1.py:

<code>def greet(name):
    return f"Hello, {name}!"</code>

module2.py:

<code>def add(a, b):
    return a + b</code>

Step 3: Update __init__.py

Expose the package’s public API by importing the functions:

<code>from .module1 import greet
from .module2 import add</code>

Now the package directly provides greet and add functions.

Step 4: Use the Package

Option 1: Local Import

Create a main.py file in the same directory:

<code># Import the package
import mypackage

# Use functions from the package
message = mypackage.greet("Nova")
result = mypackage.add(5, 3)

print(message)  # Output: Hello, Nova!
print(result)   # Output: 8</code>

Option 2: Install and Use

To make the package reusable, create a setup.py file in the parent directory:

<code>from setuptools import setup, find_packages

setup(
    name="mypackage",
    version="0.1",
    packages=find_packages(),
    description="A sample package with useful functions",
    author="Your Name",
    author_email="[email protected]",
)</code>

Install the package in editable mode:

<code>pip install -e .</code>

After installation, you can import mypackage from any Python environment.

Summary

Creating a Python package is straightforward and helps organize and reuse code. Quick recap:

Create the directory and add an __init__.py file.

Add modules containing your functionality.

Expose desired functions via __init__.py .

Use the package locally or install it for global use.

Following these steps lets you develop your own Python packages, streamline development workflows, and share functionality across projects.

PythonpackagingTutorialModulesSetup
Code Mala Tang
Written by

Code Mala Tang

Read source code together, write articles together, and enjoy spicy hot pot together.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.