TL;DR: pip could not find a prebuilt wheel for your Python version and platform, so it downloaded the source distribution and tried to compile it, but Windows has no C compiler. First upgrade pip, because newer pip recognizes more wheel tags and often finds a wheel that older pip missed. Only install the C++ Build Tools if no wheel exists at all.

```text
error: Microsoft Visual C++ 14.0 or greater is required
```

1. Upgrade pip: `python -m pip install --upgrade pip`.
   Expected: pip reports a newer version installed.
2. Re-run the failing install.
   Expected: in many cases pip now finds a compatible wheel and the error disappears entirely.
3. If pip still tries to build, check explicitly: `pip install --only-binary :all: [package-name]`.
   Expected: either the wheel installs, or pip errors clearly that no wheel exists for your platform.
4. Only when no wheel exists, install the Microsoft C++ Build Tools with the "Desktop development with C++" workload.
   Expected: the compiler is on PATH and the source build completes.
5. For the long term, pin the package to a version that ships wheels, or move the compile step to Linux CI.
   Expected: Windows CI stops compiling C extensions altogether.

## Use this when
- pip fails on Windows with the exact "Microsoft Visual C++ 14.0 or greater is required" message.
- The log shows pip building a wheel from an sdist instead of downloading one.
- The failure appears after upgrading Python to a version newer than the package's published wheels.

## Not for this skill when
- The compiler error is on Linux or macOS; those need their own toolchain, not the Visual C++ Build Tools.
- The extension is Rust-based and the error asks for rustc; that is a different toolchain.
- The log shows setuptools deprecation warnings but the install succeeds; warnings are not this error.

## Variant phrasings
- "pip error Microsoft Visual C++ 14.0 required windows"
- "pip builds wheel instead of downloading windows"
- "Microsoft Visual C++ 14.0 is required pip install"
- "pip no matching distribution vs visual c++ required"

## Why it happens
When no prebuilt wheel matches the interpreter version and platform, pip falls back to the source distribution and compiles the C extension locally. Windows ships no C compiler, so the build fails immediately. Older pip versions also miss newer wheel tags, which is why upgrading pip alone resolves it so often: the wheel existed all along, pip just could not see it.

## Edge cases
- A brand-new Python release often precedes that version's wheels by weeks; pinning Python or the package avoids the gap.
- --only-binary fails loudly for private packages that never publish wheels; those genuinely need the Build Tools.
- The Build Tools installer on CI agents typically needs a reboot before the compiler is usable.
- Some packages need a specific Build Tools version; the package's Windows build docs say which.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_PIcxFv4vU15sON4AMcjYtw
