Python Packaging User Guide#

Welcome to the Python Packaging User Guide, a collection of tutorials and references to help you distribute and install Python packages with modern tools.

This guide is maintained on GitHub by the Python Packaging Authority. We happily accept contributions and feedback. 😊

Overview and Flow#


Building your understanding of Python packaging is a journey. Patience and continuous improvement are key to success. The overview and flow sections provide a starting point for understanding the Python packaging ecosystem.

The Overview of Python Packaging explains Python packaging and its use when preparing and distributing projects. This section helps you build understanding about selecting the tools and processes that are most suitable for your use case. It includes what packaging is, the problems that it solves, and key considerations.

To get an overview of the workflow used to publish your code, see packaging flow.


Tutorials walk through the steps needed to complete a project for the first time. Tutorials aim to help you succeed and provide a starting point for future exploration. The Tutorials section includes:


Guides provide steps to perform a specific task. Guides are more focused on users who are already familiar with Python packaging and are looking for specific information.

The Guides section provides “how to” instructions in three major areas: package installation; building and distributing packages; miscellaneous topics.

Explanations and Discussions#

The Discussions section for in-depth explanations and discussion about topics, such as:


  • The PyPA specifications section for packaging interoperability specifications.

  • The list of other projects maintained by members of the Python Packaging Authority.

  • The Glossary for definitions of terms used in Python packaging.