mirror of
https://github.com/astral-sh/uv.git
synced 2025-10-29 03:02:55 +00:00
Improve interpreter discovery logging (#1909)
We had several cases where interpreter discovery fails. This PR improves
the verbose output to ensure interpreter discovery is debuggable for a
user.
In the process, i removed the custom gourgeist logic for the
uv_interpreter logic.
**venv creation**
```
$ uv venv -v -p 3.10
uv_interpreter::python_query::find_requested_python request=3.10
0.002389s 0ms DEBUG uv_interpreter::python_query Starting interpreter discovery for Python 3.10
uv_interpreter::python_query::windows::py_list_paths
0.016288s 14ms DEBUG uv_interpreter::interpreter Probing interpreter info for: C:\Users\Ferris\AppData\Local\Programs\Python\Python312\python.exe
0.072860s 70ms DEBUG uv_interpreter::interpreter Found Python 3.12.1 for: C:\Users\Ferris\AppData\Local\Programs\Python\Python312\python.exe
0.074303s 72ms DEBUG uv_interpreter::interpreter Probing interpreter info for: C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe
0.134311s 132ms DEBUG uv_interpreter::interpreter Found Python 3.8.10 for: C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe
x No Python 3.10 found through `py --list-paths` or in `PATH`. Is Python 3.10 installed?
error: process didn't exit successfully: `target\debug\uv.exe venv -v -p 3.10` (exit code: 1)
```
```
$ uv venv -v -p 3.10
uv_interpreter::python_query::find_requested_python request=3.10
0.001889s 0ms DEBUG uv_interpreter::python_query Starting interpreter discovery for Python 3.10
uv_interpreter::python_query::windows::py_list_paths
0.021488s 19ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.12.1, skipping probing: C:\Users\Ferris\AppData\Local\Programs\Python\Python312\python.exe
0.021945s 20ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.8.10, skipping probing: C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe
x No Python 3.10 found through `py --list-paths` or in `PATH`. Is Python 3.10 installed?
error: process didn't exit successfully: `target\debug\uv.exe venv -v -p 3.10` (exit code: 1)
```
```
$ uv venv -v -p 3.8
uv_interpreter::python_query::find_requested_python request=3.8
0.001896s 0ms DEBUG uv_interpreter::python_query Starting interpreter discovery for Python 3.8
uv_interpreter::python_query::windows::py_list_paths
0.013541s 11ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.8.10, skipping probing: C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe
Using Python 3.8.10 interpreter at C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe
Creating virtualenv at: .venv
Activate with: .venv\Scripts\activate
```
```
$ uv venv -v -p 3.12
uv_interpreter::python_query::find_requested_python request=3.12
0.001741s 0ms DEBUG uv_interpreter::python_query Starting interpreter discovery for Python 3.12
uv_interpreter::python_query::windows::py_list_paths
0.012807s 11ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.12.1, skipping probing: C:\Users\Ferris\AppData\Local\Programs\Python\Python312\python.exe
Using Python 3.12.1 interpreter at C:\Users\Ferris\AppData\Local\Programs\Python\Python312\python.exe
Creating virtualenv at: .venv
Activate with: .venv\Scripts\activate
```
**pip compile**
```
$ uv pip compile -v .\scripts\requirements\black.in
uv::requirements::from_source source=.\scripts\requirements\black.in
uv_interpreter::interpreter::find_best python_version=None
0.002071s 0ms DEBUG uv_interpreter::interpreter Starting interpreter discovery for active Python
0.002220s 0ms DEBUG uv_interpreter::virtual_env Found a virtualenv named .venv at: C:\Users\Ferris\projects\uv\.venv
0.002483s 0ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.12.1, skipping probing: C:\Users\Ferris\projects\uv\.venv\Scripts\python.exe
0.002581s DEBUG uv::commands::pip_compile Using Python 3.12.1 interpreter at C:\Users\Ferris\projects\uv\.venv\Scripts\python.exe for builds
```
```
$ uv pip compile -p 3.8 -v .\scripts\requirements\black.in
uv::requirements::from_source source=.\scripts\requirements\black.in
uv_interpreter::interpreter::find_best python_version=Some(PythonVersion(StringVersion { string: "3.8", version: "3.8" }))
0.002001s 0ms DEBUG uv_interpreter::interpreter Starting interpreter discovery for Python 3.8
0.002146s 0ms DEBUG uv_interpreter::virtual_env Found a virtualenv named .venv at: C:\Users\Ferris\projects\uv\.venv
0.002378s 0ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.12.1, skipping probing: C:\Users\Ferris\projects\uv\.venv\Scripts\python.exe
uv_interpreter::python_query::find_requested_python request=3.8
0.002509s 0ms DEBUG uv_interpreter::python_query Starting interpreter discovery for Python 3.8
uv_interpreter::python_query::windows::py_list_paths
0.015989s 13ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.8.10, skipping probing: C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe
0.016144s DEBUG uv::commands::pip_compile Using Python 3.8.10 interpreter at C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe for builds
```
```
$ uv pip compile -p 3.10 -v .\scripts\requirements\black.in
uv::requirements::from_source source=.\scripts\requirements\black.in
uv_interpreter::interpreter::find_best python_version=Some(PythonVersion(StringVersion { string: "3.10", version: "3.10" }))
0.002086s 0ms DEBUG uv_interpreter::interpreter Starting interpreter discovery for Python 3.10
0.002234s 0ms DEBUG uv_interpreter::virtual_env Found a virtualenv named .venv at: C:\Users\Ferris\projects\uv\.venv
0.002462s 0ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.12.1, skipping probing: C:\Users\Ferris\projects\uv\.venv\Scripts\python.exe
uv_interpreter::python_query::find_requested_python request=3.10
0.002589s 0ms DEBUG uv_interpreter::python_query Starting interpreter discovery for Python 3.10
uv_interpreter::python_query::windows::py_list_paths
0.017299s 14ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.12.1, skipping probing: C:\Users\Ferris\AppData\Local\Programs\Python\Python312\python.exe
0.018135s 15ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.8.10, skipping probing: C:\Users\Ferris\AppData\Local\Programs\Python\Python38\python.exe
0.020176s 18ms DEBUG uv_interpreter::virtual_env Found a virtualenv named .venv at: C:\Users\Ferris\projects\uv\.venv
0.020873s 18ms DEBUG uv_interpreter::interpreter Cached interpreter info for Python 3.12.1, skipping probing: C:\Users\Ferris\projects\uv\.venv\Scripts\python.exe
0.021116s DEBUG uv::commands::pip_compile Using Python 3.12.1 interpreter at C:\Users\Ferris\projects\uv\.venv\Scripts\python.exe for builds
warning: The requested Python version 3.10 is not available; 3.12.1 will be used to build dependencies instead.
```
This commit is contained in:
parent
11ed4f7183
commit
9cf7d113bc
8 changed files with 64 additions and 69 deletions
|
|
@ -1,5 +1,6 @@
|
|||
use pep440_rs::Version;
|
||||
use pep508_rs::{MarkerEnvironment, StringVersion};
|
||||
use std::fmt::{Display, Formatter};
|
||||
use std::ops::Deref;
|
||||
use std::str::FromStr;
|
||||
|
||||
|
|
@ -41,6 +42,12 @@ impl FromStr for PythonVersion {
|
|||
}
|
||||
}
|
||||
|
||||
impl Display for PythonVersion {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
||||
Display::fmt(&self.0, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl PythonVersion {
|
||||
/// Return a [`MarkerEnvironment`] compatible with the given [`PythonVersion`], based on
|
||||
/// a base [`MarkerEnvironment`].
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue