Use install_only python archive (#4843)
## Summary Resolves #4834 ## Test Plan ```sh # 3.12.3 is a `install_only` archive $ cargo run -- python install --preview --force 3.12.3 # 3.9.4 has only `full` archive $ cargo run -- python install --preview --force 3.9.4 ```
This commit is contained in:
@@ -463,12 +463,17 @@ impl ManagedPythonDownload {
|
||||
}
|
||||
|
||||
// Extract the top-level directory.
|
||||
let extracted = match uv_extract::strip_component(temp_dir.path()) {
|
||||
let mut extracted = match uv_extract::strip_component(temp_dir.path()) {
|
||||
Ok(top_level) => top_level,
|
||||
Err(uv_extract::Error::NonSingularArchive(_)) => temp_dir.into_path(),
|
||||
Err(err) => return Err(Error::ExtractError(filename.to_string(), err)),
|
||||
};
|
||||
|
||||
// If the distribution is a `full` archive, the Python installation is in the `install` directory.
|
||||
if extracted.join("install").is_dir() {
|
||||
extracted = extracted.join("install");
|
||||
}
|
||||
|
||||
// Persist it to the target
|
||||
debug!("Moving {} to {}", extracted.display(), path.user_display());
|
||||
rename_with_retry(extracted, &path)
|
||||
|
||||
Reference in New Issue
Block a user