setuptools
Most extensible Python build backend with support for C/C++ extension modules
Decision gist · record as of 2026-08-14
Yes. Setuptools is essential infrastructure for Python packaging. It is actively maintained, has zero known vulnerabilities, installs with low friction, and is licensed permissively under MIT. Whether you build packages directly or use a modern build tool, setuptools is a reliable dependency that has been battle-tested across the Python ecosystem.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Setuptools has low install friction and is actively maintained with a release from 2026-08-08.
- The repository shows 2848 stars and was last updated 2026-08-09, indicating ongoing development and community support.
License · maintenance · safety
MIT (permissive) — Setuptools is licensed under MIT, a permissive license that allows commercial and private use with minimal restrictions, making it safe to depend on in any project.
last release 2026-08-08 (6 days) · last repo commit 2026-08-09 · 2,848 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,563,563,625 downloads/mo, #9 on PyPI
Alternatives
Verify before relying
pip install setuptools==84.0.0
In setup.py or pyproject.toml:
from setuptools import setup
setup(name='mypackage', version='0')- Whether C/C++ extension building requires additional system libraries or compilers beyond what setuptools provides.
- Specific guidance on migrating from distutils or older setuptools patterns to current best practices.
What it is and what it does
Setuptools is the standard Python build backend and package management tool, used to define, build, and distribute Python packages. It extends distutils with support for C/C++ extension modules, dependency management, and modern packaging standards. Most Python projects rely on setuptools either directly or indirectly through modern build tools that use it as their backend.
The package handles the full lifecycle of package creation: declaring metadata and dependencies, compiling native extensions, creating wheels and source distributions, and uploading to package repositories. It is production-stable and actively maintained, with no known security vulnerabilities. Installation is straightforward with minimal dependencies, making it suitable for any Python development workflow.
Use it for
- Building and packaging a Python library with pure Python code for distribution on PyPI.
- Creating a package that includes C or C++ extension modules for performance-critical code.
- Defining package metadata, dependencies, and entry points in a setup.py or pyproject.toml file.
- Generating wheel and source distributions for reproducible installation across environments.
- Integrating with modern build frontends that delegate to setuptools as the backend.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Setuptools is essential infrastructure for Python packaging. It is actively maintained, has zero known vulnerabilities, installs with low friction, and is licensed permissively under MIT. Whether you build packages directly or use a modern build tool, setuptools is a reliable dependency that has been battle-tested across the Python ecosystem.
Install
setuptools on PyPI
Before you install
Setuptools has low install friction and is actively maintained with a release from 2026-08-08. The repository shows 2848 stars and was last updated 2026-08-09, indicating ongoing development and community support.
Requires Python 3.10 or later.
License in practice
Setuptools is licensed under MIT, a permissive license that allows commercial and private use with minimal restrictions, making it safe to depend on in any project.
Quickstart
pip install setuptools==84.0.0
In setup.py or pyproject.toml:
from setuptools import setup
setup(name='mypackage', version='0')
Verify before relying
- Whether C/C++ extension building requires additional system libraries or compilers beyond what setuptools provides.
- Specific guidance on migrating from distutils or older setuptools patterns to current best practices.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,563,563,625 / month, #9 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyTopic :: Software Development :: Libraries :: Python ModulesTopic :: System :: Archiving :: PackagingTopic :: System :: Systems AdministrationTopic :: Utilities |
Evidence: setuptools-84.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “c extension module building”
- setuptoolsSetuptools is a Python build backend and package management tool that…
- scikit-build-coreA build backend that uses CMake to compile Python extension modules…
- azdevazdev is a command-line tool that helps developers set up, test,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
Determines platform-specific directories for application data, config, cache, logs, and user media folders across macOS, Windows, Linux, and Android.
See also distlib · distribute · extension-helpers · twine · pypiserver · pip · setuptools-git · setuptools-scm · wheel · setuptools-dso