jdx/mise · error
no precompiled python found for
Error message
no precompiled python found for {tv} on {platform} What it means
The core python plugin builds the install from precompiled python-build-standalone distributions; when the requested version has no matching entry in that catalog for the current platform, and compilation is disabled (or the platform is Windows), installation fails with this error. mise throws it because neither the precompiled catalog nor a source build can supply the requested python.
Solutions
- Enable source compilation: `mise settings set python.compile true`
- Choose a python version present in the python-build-standalone catalog (e.g. `mise use python@3.12.9`)
- Check python.precompiled_arch / python.precompiled_os settings are valid for your platform and not masking available builds
Example fix
// before [python] compile = false mise use python@3.9.0 // not in catalog for this platform // after mise use python@3.12.9 // or remove compile=false to build from source
Defensive patterns
Strategy: validation
Validate before calling
// confirm the version exists in python-build-standalone releases before install
const tag = await (await fetch("https://api.github.com/repos/astral-sh/python-build-standalone/releases/latest")).json();
const ok = tag.assets.some(a => a.name.includes("x86_64-unknown-linux-gnu"));
if (!ok) throw new Error("no precompiled python for this platform; enable python.compile"); Try / catch
try {
await $`mise install python@${ver}`;
} catch (e) {
if (String(e).includes("no precompiled python found")) {
await $`mise settings set python.compile true`;
await $`mise install python@${ver}`;
} else throw e;
} Prevention
- Keep python.compile unset so mise silently falls back to source builds
- Check the python-build-standalone release catalog before pinning unusual python versions
- Validate python.precompiled_arch/os settings before cross-platform installs
When it happens
Trigger: `mise install python@<version>` where fetch_precompiled_remote_versions contains no entry matching tv.version for python_precompiled_platform(), while on Windows or with `python.compile=false`.
Common situations: Installing an EOL or brand-new python version not yet in the python-build-standalone catalog; requesting a version that upstream never shipped precompiled for your arch (e.g. aarch64-windows); setting python.compile=false to avoid slow builds.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- exposes no executable scripts
- \ncompilation is disabled
- no precompiled ruby found for
- pipx was found during dependency validation but could not…
- precompiled node archive not found and compilation is…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/23d44248ff4d7872.
Report an issue: GitHub.
Appendix: source
Thrown at src/plugins/core/python.rs:527
let precompile_info = precompiled_versions
.iter()
.rev()
.find(|(v, _, _)| &tv.version == v);
let (tag, filename) = match precompile_info {
Some((_, tag, filename)) => (tag, filename),
None => {
if cfg!(windows)
|| Settings::get().python_compile(CompilePurpose::Inspect) == Some(false)
{
if !cfg!(windows) {
hint!(
"python_compile",
"To compile python from source, run",
"mise settings python.compile=1"
);
}
let platform = python_precompiled_platform();
bail!("no precompiled python found for {tv} on {platform}");
}
let available = precompiled_versions.iter().map(|(v, _, _)| v).collect_vec();
if available.is_empty() {
debug!("no precompiled python found for {}", tv.version);
} else {
warn!(
"no precompiled python found for {}, force mise to use a precompiled version with `mise settings set python.compile=false`",
tv.version
);
}
trace!(
"available precompiled versions: {}",
available.into_iter().join(", ")
);
return self.install_compiled(ctx, tv).await;
}
};
View on GitHub (pinned to 533346cc37)