jdx/mise · error

no precompiled python found for {tv} on {platform}

Error message

no precompiled python found for {tv} on {platform}

What it means

core:python installs standalone-build (python-build-standalone) precompiled distributions. When no precompiled build matches the requested version and current platform, and compilation is not enabled (settings python.compile=1), mise fails listing the version and detected platform.

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 afd2eddd3a)

Solutions

  1. Enable compilation: `mise settings python.compile=1`
  2. Choose a Python version available in python-build-standalone releases
  3. Fix python.precompiled_os / python.precompiled_arch settings if they were overridden incorrectly
  4. Use vfox:python for platforms core:python doesn't cover

Example fix

// before
mise settings set python.precompiled_os freebsd  // filters out everything

// after
mise settings unset python.precompiled_os
# or
mise settings set python.compile 1
Defensive patterns

Strategy: validation

Validate before calling

[[ -n "${MISE_PYTHON_COMPILE:-}" ]] || curl -fsSL https://raw.githubusercontent.com/astral-sh/python-build-standalone/latest/latest-release.json | jq -e --arg v "3.12.7" 'has($v)' >/dev/null || echo 'no prebuilt; set python.compile=1'

Try / catch

if ! mise install python@"$VER"; then
  mise settings set python.compile 1
  mise install python@"$VER"
fi

Prevention

When it happens

Trigger: `mise install python@<version>` where the precompiled manifest has no entry for (version, platform) and python.compile is falsy; e.g. brand-new CPython release not yet in the standalone builds, or exotic platform/arch.

Common situations: Newly released Python version ahead of prebuilt publishing; musl/Alpine or uncommon CPU architectures; mismatched python.precompiled_os/arch settings excluding all candidates.

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


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/23d44248ff4d7872. Report an issue: GitHub.