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.