setuptools
setuptools.pypa.io
What it is
setuptools is a free Python packaging library for preparing projects for sharing and installation. It can serve as a project build backend, discover packages and namespaces, and let maintainers control which packages are distributed. It handles build-system requirements plus required and optional dependencies, including version limits and environment markers, and supports dependency groups. Configured entry points can generate console-command and plugin scripts during installation. Editable installs apply source changes without rebuilding and reinstalling. The library can build C and C++ extension modules, and its documentation covers workflows with pip, build, and PyPI. Setuptools runs on Linux, macOS, and Windows, while the current PyPI listing requires Python 3.10 or later. The project identifies modern PyPA-standard APIs and documented customization APIs as its most stable interfaces. It is free, has no free trial, and professional support is available through a Tidelift Subscription.
Spec sheet
- Purpose
- Setuptools is a library designed to facilitate packaging Python projects for sharing and installation.Read 8 Oct 2026 · setuptools.pypa.io
- Integrations
- The documentation describes using setuptools with pip, build, and PyPI as part of building and distributing Python packages.Read 8 Oct 2026 · setuptools.pypa.io
- Support
- Professional support for setuptools is available through a Tidelift Subscription.Read 8 Oct 2026 · setuptools.pypa.io
- Build backend
- Setuptools can serve as the packaging build backend for Python projects.Read 8 Oct 2026 · setuptools.pypa.io
- C and C++ extensions
- Setuptools can build C and C++ extension modules.Read 8 Oct 2026 · setuptools.pypa.io
- Compatibility
- The project identifies modern PyPA-standard APIs and documented customization APIs as its most stable supported interfaces.Read 8 Oct 2026 · setuptools.pypa.io
- Compatibility limits
- The current PyPI listing states that setuptools requires Python 3.10 or later.Read 8 Oct 2026 · pypi.org
- Dependencies
- Setuptools supports build system requirements, required dependencies, and optional dependencies with version restrictions and environment markers.Read 8 Oct 2026 · setuptools.pypa.io
- Editable installs
- Setuptools supports editable installs that let source changes take effect without rebuilding and reinstalling the package.Read 8 Oct 2026 · setuptools.pypa.io
- Entry points
- Setuptools can create scripts during installation from configured entry points, including console commands and plugin entry points.Read 8 Oct 2026 · setuptools.pypa.io
- Package discovery
- Setuptools can automatically discover packages and namespaces and lets maintainers customize which packages are distributed.Read 8 Oct 2026 · setuptools.pypa.io
- Security maintenance
- The release history documents security fixes, including a fix preventing archive members from being extracted outside the requested directory.Read 8 Oct 2026 · setuptools.pypa.io
Plans and prices
Strong points and limits
Strong points
- Free plan at 0.00 USD
- Build backend for Python projects
- Editable installs supported
- Builds C and C++ extensions
- Works on Linux, macOS, and Windows
Limits
- Requires Python 3.10 or later
- No lockfile support listed
- No environment management listed
- No package publishing listed
Who it suits
It suits Python maintainers who package, distribute, and install projects across Linux, macOS, or Windows. It is also relevant to teams needing editable installs, dependency declarations, entry points, or native extensions.
Verdict
setuptools covers project packaging from discovery and dependencies through installation scripts and native extensions.
Where Specifiction places it
- Python Package Managers#22 of 277.3