diff --git a/crates/uv-python/src/downloads.rs b/crates/uv-python/src/downloads.rs index 3c02f8f6c87c..6bf5c08b058e 100644 --- a/crates/uv-python/src/downloads.rs +++ b/crates/uv-python/src/downloads.rs @@ -233,6 +233,11 @@ impl PythonDownloadRequest { return false; } } + if let Some(libc) = &self.libc { + if key.libc != *libc { + return false; + } + } if let Some(implementation) = &self.implementation { if key.implementation != LenientImplementationName::from(*implementation) { return false; diff --git a/crates/uv/src/commands/python/list.rs b/crates/uv/src/commands/python/list.rs index 69baf30b69bf..e32762576770 100644 --- a/crates/uv/src/commands/python/list.rs +++ b/crates/uv/src/commands/python/list.rs @@ -113,14 +113,15 @@ pub(crate) async fn list( // Only show the latest patch version for each download unless all were requested if !matches!(kind, Kind::System) { if let [major, minor, ..] = version.release() { - if !seen_minor.insert((os.clone(), *major, *minor)) { + if !seen_minor.insert((os.clone(), *major, *minor, *key.arch(), *key.libc())) { if matches!(kind, Kind::Download) && !all_versions { continue; } } } if let [major, minor, patch] = version.release() { - if !seen_patch.insert((os.clone(), *major, *minor, *patch)) { + if !seen_patch.insert((os.clone(), *major, *minor, *patch, *key.arch(), key.libc())) + { if matches!(kind, Kind::Download) { continue; }