vllm-project/vllm · error · ValueError
No compatible wheel found for {arch} at {simple_url}
Error message
No compatible wheel found for {arch} at {simple_url} What it means
Raised in setup.py's wheel-link parser (line 815): after fetching a PEP 503 simple index page (`simple_url`) and parsing its wheel hrefs, no wheel filename contains the machine architecture tag `arch` (e.g. `linux_x86_64`, `manylinux2014_aarch64`). It means the index was reachable but has no wheel matching your platform.
Source
Thrown at setup.py:815
for name, value in attrs:
if name == "href" and value.endswith(".whl"):
self.wheels.append(value)
simple_url = f"{index_url.rstrip('/')}/{package}/"
print(f"Fetching wheel list from {simple_url}")
with urlopen(simple_url) as resp:
html = resp.read().decode("utf-8")
parser = WheelLinkParser()
parser.feed(html)
for wheel in reversed(parser.wheels):
if arch in wheel:
if wheel.startswith("http"):
return wheel
return urljoin(simple_url, wheel)
raise ValueError(f"No compatible wheel found for {arch} at {simple_url}")
@staticmethod
def determine_wheel_url_rocm() -> tuple[str, str | None]:
"""Determine the precompiled wheel for ROCm."""
# Search for local wheel first
local_wheel = precompiled_wheel_utils.find_local_rocm_wheel()
if local_wheel is not None:
print(f"Found local ROCm wheel: {local_wheel}")
return local_wheel, None
import platform
arch = platform.machine()
commit = os.getenv("VLLM_PRECOMPILED_WHEEL_COMMIT", "").lower()
if not commit or len(commit) != 40:
print(
f"VLLM_PRECOMPILED_WHEEL_COMMIT not valid: {commit}"
", trying to fetch base commit in main branch"View on GitHub (pinned to c794754062)
Solutions
- Point the install at an index that hosts wheels for your arch (official PyPI, or the correct arch tag in the override)
- Check the parsed page manually (curl the simple_url) to see which platform tags actually exist
- If no prebuilt wheel exists for your platform, build from source without the wheel override
Example fix
# before PIP_INDEX_URL=https://internal-mirror/x86-only/simple pip install vllm ValueError: No compatible wheel found for manylinux2014_aarch64 ... # after PIP_INDEX_URL=https://pypi.org/simple pip install vllm
Defensive patterns
Strategy: fallback
Validate before calling
import platform, urllib.request
machine = platform.machine().lower() # e.g. x86_64 -> expect manylinux*_x86_64 tags
html = urllib.request.urlopen(simple_url).read().decode()
assert any(machine in href for href in html.split('"')), f"index {simple_url} has no {machine} wheels" Try / catch
try:
wheel_url = find_wheel(simple_url, arch)
except ValueError as e:
# fall back to an index that hosts this arch, or to a source build
print(f"{e}; falling back to PyPI")
wheel_url = find_wheel("https://pypi.org/simple/vllm/", arch) Prevention
- Pre-flight the simple index for your arch tag before automating installs
- Keep arch-mirrored internal repos in sync when adding new platforms
When it happens
Trigger: Installing vLLM with a precompiled-wheel override pointing at a simple index that lacks wheels for the current arch — e.g. an x86-only nightly repo queried from an arm64 machine, or a repo that only hosts cu12 wheels while you need a different ABI tag.
Common situations: Apple Silicon or Grace/ARM machines pointed at x86-only internal mirrors; stale internal DevPI/Nexus proxy that has not synced newer arch variants; environment variables (e.g. PIP_INDEX_URL / vLLM wheel-repo override) pointing at a partial mirror.
Related errors
- Wheel metadata missing path: {wheel}
- tokenizer error: {0}
- Cannot find CMake executable
- Invalid HTTP URL: A valid HTTP URL must have scheme 'http' o
- HTTP request failed: {0}
AI-assisted analysis of vllm-project/vllm@c794754062 (2026-08-14).
Data as JSON: /api/errors/a38e620632035f38.
Report an issue: GitHub.