Skip to content
Latchkey

pip "Cannot import 'setuptools.build_meta'" - Build Backend Errors

pip created an isolated build environment and could not import the build backend your pyproject.toml declares. Usually [build-system].requires is missing the backend, or build isolation can’t reach it.

What this error means

A build fails very early with a message that pip cannot import the build backend (e.g. setuptools.build_meta, poetry.core.masonry.api, hatchling.build). It happens before any compiling, during build-environment setup.

pip output
ERROR: Cannot import 'setuptools.build_meta'
# or
ModuleNotFoundError: No module named 'poetry.core.masonry.api'

Common causes

build-system.requires is incomplete

The [build-system] requires list does not include the backend (or a recent enough version), so the isolated build env never installs it.

Build isolation can’t fetch the backend

With --no-build-isolation or a blocked index, the isolated environment cannot install the declared backend, so the import fails.

How to fix it

Declare the backend correctly

Make sure pyproject.toml lists the backend in requires and names it in build-backend.

pyproject.toml
[build-system]
requires = ["setuptools>=64", "wheel"]
build-backend = "setuptools.build_meta"

Fix build isolation

  1. If you pass --no-build-isolation, pre-install the backend yourself (pip install setuptools wheel).
  2. Ensure the build env can reach an index so it can fetch requires.
  3. Upgrade pip so it honors modern pyproject.toml build-system declarations.

How to prevent it

  • Always declare a complete [build-system] table in pyproject.toml.
  • Pre-install the backend when disabling build isolation.
  • Keep pip current so PEP 517 builds behave correctly.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →