How to Create Python Packages and Publish Them on a Repository

By

Profile image

Adeniyi Aderounmu

8 min read
Post Image

Python's package management system allows developers to easily share and distribute their code with others. Creating a Python package and publishing it to a repository can streamline the process of sharing your work and making it accessible to a wider audience. In this guide, we'll walk through the steps of creating a Python package and publishing it to a repository.

Prerequisites

Before we begin, make sure you have the following prerequisites installed on your system:

  1. Python: Ensure that Python is installed on your machine. You can download it from python.org.

  2. pip: This is the package installer for Python. It usually comes bundled with Python. You can check its version by running pip --version in your terminal.

  3. Setuptools and Wheel: Install these packages by running:

pip install setuptools wheel
  1. Twine: Twine is a utility for publishing Python packages on the Python Package Index (PyPI). Install it with:
pip install twine

Creating a Python Package

  1. Project Structure:

    Start by organizing your project with a proper directory structure. A basic structure might look like this:

├── your_package/
│ ├── your_package/
│ │ ├── **init**.py
│ │ ├── module1.py
│ │ ├── module2.py
│ ├── README.md
│ ├── LICENSE
│ ├── setup.py
│ ├── MANIFEST.in
  • your_package/: The main project folder.
  • your_package/your_package/: The Python package containing your modules.
  • README.md: Documentation for your package.
  • LICENSE: License file for your project.
  • setup.py: Configuration file for package metadata.
  • MANIFEST.in: File specifying additional files to include in the distribution.
  1. Write Code:

Populate your modules with the desired functionality. Ensure that each module has an __init__.py file to make it a Python package.

  1. README.md:

Create a README.md file to document your package. Include information on installation, usage, and any other relevant details.

  1. setup.py:

Create a setup.py file in the root of your project. This file contains metadata about your package. Here's a basic example:

from setuptools import setup, find_packages

setup(
    name='your-package',
    version='0.1.0',
    packages=find_packages(),
    install_requires=[
        # List your dependencies here
    ],
)
  1. MANIFEST.in:

If your project includes non-Python files (e.g., static assets, documentation), specify them in the MANIFEST.in file.

include README.md

Build and Distribute

  1. Build the Distribution:

Open a terminal in the project's root directory and run the following commands:

python setup.py sdist bdist_wheel

This creates a source distribution (sdist) and a wheel distribution (bdist_wheel).

  1. Upload to PyPI:

Use Twine to upload your distribution to PyPI:

twine upload dist/*

Conclusion

Congratulations! You've successfully created a Python package and published it to a repository. Now others can easily install and use your code. Remember to keep your package updated and respond to user feedback to improve its functionality over time.