# ERROR: Could not build wheels for foo, which is required to install pyproject.toml-based projects

× Preparing metadata (pyproject.toml) did not run successfully.
╰─> BackendUnavailable: Cannot import 'setuptools.build_meta'

- **ID:** `python/pip-build-backend-not-found`
- **Domain:** python
- **Category:** install_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

The build backend declared in pyproject.toml [build-system].build-backend cannot be imported inside the isolated build environment, usually because the backend package is not listed in [build-system].requires.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 3.9 | active | — | — |
| 3.10 | active | — | — |
| 3.11 | active | — | — |
| 3.12 | active | — | — |

## Workarounds

1. **** (95% success)
   ```
   Add the backend to requires in pyproject.toml:
  [build-system]
  requires = ["setuptools>=61", "wheel"]
  build-backend = "setuptools.build_meta"
For hatchling: requires = ["hatchling"], build-backend = "hatchling.build"
   ```
2. **** (80% success)
   ```
   If you only consume the package, install the backend manually then build without isolation:
  pip install setuptools wheel
  pip install --no-build-isolation foo
   ```

## Dead Ends

- **** — Without isolation, the backend must already be installed in your env; if it is not, the same error occurs. (70% fail)
- **** — pip version does not affect whether the build backend is importable. (90% fail)
