- Home
- Python Package Managers
- setuptools
setuptools
What it is
setuptools is a free Python library for preparing projects to share and install. It can serve as a packaging build backend, discover packages and namespaces automatically, and let maintainers control which packages are distributed. Dependency handling covers build requirements, required and optional dependencies, version restrictions and environment markers, with dependency groups supported. Configured entry points can create installation-time scripts, including console commands and plugin entry points. Editable installs let source changes take effect without rebuilding and reinstalling. The library can also build C and C++ extension modules. Its documentation describes use with pip, build and PyPI for Python package distribution. Setuptools runs on Linux, macOS and Windows and requires Python 3.10 or later according to its current PyPI listing. The project identifies modern PyPA-standard APIs and documented customization APIs as its most stable interfaces. Professional support is available through a Tidelift Subscription.
For and against
For
- Free Python packaging library
- Supports package and namespace discovery
- Handles required and optional dependencies
- Provides editable installation support
- Runs on Linux, macOS and Windows
Against
- Requires Python 3.10 or later
- No lockfile support
- No environment-management features
- No package-publishing feature
The verdict
setuptools covers core Python packaging tasks from discovery and dependencies to build backends and entry points. Its broad platform support is paired with a Python 3.10-or-newer requirement.
Who it suits
It suits Python maintainers packaging libraries or applications for distribution and installation. It is also useful when projects need entry points, editable installs or native extensions.
Plans and prices
Setuptools
Python packaging library
Read 8 Oct 2026 · setuptools.pypa.io
On the record
- Build backend
- Setuptools can serve as the packaging build backend for Python projects.setuptools.pypa.io · read 8 Oct 2026
- C and C++ extensions
- Setuptools can build C and C++ extension modules.setuptools.pypa.io · read 8 Oct 2026
- Compatibility
- The project identifies modern PyPA-standard APIs and documented customization APIs as its most stable supported interfaces.setuptools.pypa.io · read 8 Oct 2026
- Compatibility limits
- The current PyPI listing states that setuptools requires Python 3.10 or later.pypi.org · read 8 Oct 2026
- Dependencies
- Setuptools supports build system requirements, required dependencies, and optional dependencies with version restrictions and environment markers.setuptools.pypa.io · read 8 Oct 2026
- Editable installs
- Setuptools supports editable installs that let source changes take effect without rebuilding and reinstalling the package.setuptools.pypa.io · read 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 · read 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 · read 8 Oct 2026
- Package discovery
- Setuptools can automatically discover packages and namespaces and lets maintainers customize which packages are distributed.setuptools.pypa.io · read 8 Oct 2026
- Purpose
- Setuptools is a library designed to facilitate packaging Python projects for sharing and installation.setuptools.pypa.io · read 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 · read 8 Oct 2026
- Support
- Professional support for setuptools is available through a Tidelift Subscription.setuptools.pypa.io · read 8 Oct 2026