Freedom251 › Python Package Managers
setuptools

What setuptools is
setuptools is a free Python packaging library for preparing projects to be shared and installed. It can act as a project’s build backend, discover packages and namespaces, and let maintainers control which packages are distributed. It supports build-system requirements, required and optional dependencies, version restrictions, environment markers, and dependency groups. Configured entry points can create scripts when a package is installed, including console commands and plugin entry points. Editable installs allow source changes to take effect without rebuilding and reinstalling, and setuptools can build C and C++ extension modules. The project’s documentation describes using it with pip, build, and PyPI when building and distributing Python packages. The project identifies modern PyPA-standard APIs and its documented customization APIs as its most stable supported interfaces. Its current PyPI listing requires Python 3.10 or later. setuptools supports Linux, macOS, and Windows. The listed Setuptools plan costs nothing; there is no free trial. Professional support is available through a Tidelift Subscription.
Who it suits
setuptools suits Python maintainers who need a packaging build backend, package discovery, dependency declarations, or installation-time scripts. It also fits projects that build C or C++ extensions or need editable installs across Linux, macOS, and Windows.
What it does well
- Free plan costs nothing.
- Discovers packages and namespaces, with distribution choices for maintainers.
- Supports build requirements and required or optional dependencies.
- Editable installs apply source changes without rebuilding and reinstalling.
- Can build C and C++ extension modules.
What to know first
- Requires Python 3.10 or later.
- Does not provide lockfile support or environment management.
- Package publishing is not included.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Setuptools | Python packaging library | Free |
As setuptools.pypa.io lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the setuptools website.
- Use the library on Linux, macOS, or Windows.
- Check the documented stable APIs and customization interfaces.
- Use the documentation for workflows involving pip, build, and PyPI.
Verdict
Choose setuptools if you need a free Python packaging library with package discovery, dependency configuration, entry points, and support for C or C++ extensions. Look elsewhere if your required features include lockfile support, environment management, or package publishing.
Questions
How much does setuptools cost?
The Setuptools plan is free, and the pricing model is free.
Is there a free trial?
No. The listed free plan is available without a free trial.
Which platforms does setuptools support?
It supports Linux, macOS, and Windows.
What Python version does it require?
The current PyPI listing says setuptools requires Python 3.10 or later.
Does setuptools support dependency groups?
Yes. Dependency groups are supported.
Is professional support available?
Professional support is available through a Tidelift Subscription.
Facts from setuptools's own pages
- Build backend
- Setuptools can serve as the packaging build backend for Python projects. · setuptools.pypa.io, 8 Oct 2026
- C and C++ extensions
- Setuptools can build C and C++ extension modules. · setuptools.pypa.io, 8 Oct 2026
- Compatibility
- The project identifies modern PyPA-standard APIs and documented customization APIs as its most stable supported interfaces. · setuptools.pypa.io, 8 Oct 2026
- Compatibility limits
- The current PyPI listing states that setuptools requires Python 3.10 or later. · pypi.org, 8 Oct 2026
- Dependencies
- Setuptools supports build system requirements, required dependencies, and optional dependencies with version restrictions and environment markers. · setuptools.pypa.io, 8 Oct 2026
- Editable installs
- Setuptools supports editable installs that let source changes take effect without rebuilding and reinstalling the package. · setuptools.pypa.io, 8 Oct 2026
- Entry points
- Setuptools can create scripts during installation from configured entry points, including console commands and plugin entry points. · setuptools.pypa.io, 8 Oct 2026
- Integrations
- The documentation describes using setuptools with pip, build, and PyPI as part of building and distributing Python packages. · setuptools.pypa.io, 8 Oct 2026
- Package discovery
- Setuptools can automatically discover packages and namespaces and lets maintainers customize which packages are distributed. · setuptools.pypa.io, 8 Oct 2026
- Purpose
- Setuptools is a library designed to facilitate packaging Python projects for sharing and installation. · setuptools.pypa.io, 8 Oct 2026
- Security maintenance
- The release history documents security fixes, including a fix preventing archive members from being extracted outside the requested directory. · setuptools.pypa.io, 8 Oct 2026
- Support
- Professional support for setuptools is available through a Tidelift Subscription. · setuptools.pypa.io, 8 Oct 2026
Where setuptools stands on Freedom251
- Python Package Managers#19 of 27