diff --git a/crates/uv/src/commands/python/install.rs b/crates/uv/src/commands/python/install.rs index 480731cbe..9a6838e12 100644 --- a/crates/uv/src/commands/python/install.rs +++ b/crates/uv/src/commands/python/install.rs @@ -66,12 +66,12 @@ impl<'a> InstallRequest<'a> { Ok(download) => download, Err(downloads::Error::NoDownloadFound(request)) if request.libc().is_some_and(Libc::is_musl) - && request - .arch() - .is_some_and(|arch| Arch::is_arm(&arch.inner())) => + && request.arch().is_some_and(|arch| { + arch.inner() == Arch::from(&uv_platform_tags::Arch::Armv7L) + }) => { return Err(anyhow::anyhow!( - "uv does not yet provide musl Python distributions on aarch64." + "uv does not yet provide musl Python distributions on armv7." )); } Err(err) => return Err(err.into()), diff --git a/crates/uv/tests/it/python_install.rs b/crates/uv/tests/it/python_install.rs index 2d8cbc6a1..587cb94dd 100644 --- a/crates/uv/tests/it/python_install.rs +++ b/crates/uv/tests/it/python_install.rs @@ -3951,3 +3951,36 @@ fn python_install_upgrade_version_file() { hint: The version request came from a `.python-version` file; change the patch version in the file to upgrade instead "); } + +#[test] +fn python_install_armv7() { + let context: TestContext = TestContext::new_with_versions(&[]) + .with_filtered_python_keys() + .with_managed_python_dirs() + .with_python_download_cache() + .with_filtered_python_sources() + .with_filtered_python_install_bin() + .with_filtered_python_names() + .with_filtered_exe_suffix(); + + // Explicitly request a musl build for armv7l + uv_snapshot!(context.filters(), context.python_install().arg("cpython-3.12.12-linux-armv7-musl"), @r###" + success: false + exit_code: 2 + ----- stdout ----- + + ----- stderr ----- + error: uv does not yet provide musl Python distributions on armv7. + "###); + + // Explicitly request a gnuabi build for armv7l + uv_snapshot!(context.filters(), context.python_install().arg("cpython-3.12.12-linux-armv7-gnueabi"), @r###" + success: true + exit_code: 0 + ----- stdout ----- + + ----- stderr ----- + Installed Python 3.12.12 in [TIME] + + cpython-3.12.12-[PLATFORM] (python3.12) + "###); +}