w3resource

How do you use setuptools to build and distribute a Python package?

Unveiling the purpose of the setup.py file in Python package distributions

Using "setuptools" to build and distribute a Python package involves several steps. Here's a step-by-step guide to build and distribute a Python package using "setuptools":

Create a Package Directory Structure:

Start by organizing your package code and resources in a directory structure. Include your package modules, sub-packages, and any required data or scripts. Ensure that init.py files are included in all packages and subpackages.

Create setup.py:

In the root of your package directory, create a setup.py file. This file contains your package's configuration and metadata.

Define Metadata and Dependencies:

Inside the setup.py file, use the "setuptools.setup()" function to define metadata for your package. This includes its name, version, author, description, license, etc. You can also specify required dependencies using the "install_requires" parameter.

Add Optional Features (if needed):

By using additional parameters in the setup() function, you can add optional features, command-line interfaces (CLI), or entry points to your package.

Build Source Distribution:

To create a source distribution of your package, run the following command in the terminal:

python setup.py sdist

This will create a dist directory containing the source distribution (a .tar.gz (on Unix) or .zip file(Windows)) of your package.

You can specify as many formats as you like using the --formats option, for example:

python setup.py sdist --formats=gztar,zip

to create a gzipped tarball and a zip file. The available formats are:

FormatDescription
zipzip file (.zip)
gztargzip'ed tar file (.tar.gz)
bztarbzip2'ed tar file (.tar.bz2)
xztarxz'ed tar file (.tar.xz)
ztarcompressed tar file (.tar.Z)
tartar file (.tar)

Build Wheel Distribution (Optional but recommended): Run the following command to create a binary wheel distribution (recommended for faster installations):

python setup.py bdist_wheel

This will create a dist directory containing the wheel distribution (a .whl file) of your package.

Note: Before using the above command install the wheel package using pip.

Install and Test the Distribution (Optional):

You can install and test the distribution locally before uploading it to PyPI. Use the following command:

pip install dist/test_package-v.v.v.tar.gz

Replace v.v.v with the version number of your package.

Upload to PyPI (Optional): You can share your package with the Python community by uploading it to the Python Package Index (PyPI). You'll need a PyPI account and install "twine". Use the following command to upload the distribution:

twine upload dist/*

This will prompt you to enter your PyPI credentials and upload the distribution.

Install and Use the Package (After uploading to PyPI): Once your package is on PyPI, users can install it using pip:

pip install my_package


Follow us on Facebook and Twitter for latest update.