Chapter 25. Distributing Extensions and Programs

Python’s distutils is part of the standard library, underlying the tools used for packaging and distributing Python programs and extensions. However, we don’t recommend that you use distutils directly: use, instead, newer third-party tools. In most cases, you’ll want to use setuptools and wheels to create wheels, then use twine to upload them to your favorite repository (usually PyPI, the Python Package Index, aka The Cheeseshop) and pip to download and install them. If you do not have pip installed (it comes with v2 and v3), see pip’s installation page. Be sure to use the most upgraded version of pip, by running pip install --upgrade pip. On Windows, run py -m pip install -U pip setuptools and then make sure pip is in your system PATH, similar to ensuring Python is on your PATH.

In this chapter, we cover the simplest uses of setuptools and twine for the most common packaging needs. For more in-depth or advanced explanation, see the Python Packaging User Guide. At the time of writing, the new PEP 518 specifies protocols for distributing extensions and programs with other build tools, but these are not yet supported, so we do not cover them in this book.

If you are looking to create and distribute complicated cross-platform or cloud-based apps, you may wish to explore Docker containers; if you want a complete package manager, especially if you’re doing data science/engineering, consider conda (the base of both Miniconda and Anaconda ...

Get Python in a Nutshell, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.