| Server IP : 85.112.90.236 / Your IP : 192.168.1.26 Web Server : Apache System : Linux 85-112-90-236.cprapid.com 6.12.0-211.7.3.el10_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 12:46:58 EDT 2026 x86_64 User : ftechme ( 1002) PHP Version : 8.2.32 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/share/doc/python3-setuptools/userguide/ |
Upload File : |
==================================================
Building and Distributing Packages with Setuptools
==================================================
The first step towards sharing a Python library or program is to build a
distribution package [#package-overload]_. This includes adding a set of
additional files containing metadata and configuration to not only instruct
``setuptools`` on how the distribution should be built but also
to help installer (such as :pypi:`pip`) during the installation process.
This document contains information to help Python developers through this
process. Please check the :doc:`/userguide/quickstart` for an overview of
the workflow.
Also note that ``setuptools`` is what is known in the community as :pep:`build
backend <517#terminology-and-goals>`, user facing interfaces are provided by tools
such as :pypi:`pip` and :pypi:`build`. To use ``setuptools``, one must
explicitly create a ``pyproject.toml`` file as described :doc:`/build_meta`.
Contents
========
.. toctree::
:maxdepth: 1
quickstart
package_discovery
dependency_management
development_mode
entry_point
datafiles
ext_modules
distribution
miscellaneous
extension
declarative_config
pyproject_config
---
.. rubric:: Notes
.. [#package-overload]
A :term:`Distribution Package` is also referred in the Python community simply as "package"
Unfortunately, this jargon might be a bit confusing for new users because the term package
can also to refer any :term:`directory <package>` (or sub directory) used to organize
:term:`modules <module>` and auxiliary files.