I’ve found an issue with uv
while creating a simple venv
. Nothing fancy
with my dependencies. I’ve condensed everything in this issue:
But here is the minimal reproducible example of it:
1
2
3
4
5
6
| rm -rf test
uv init test
cd test
uv version
# uv venv && uv pip install numpy statsforecast
uv add numpy statsforecast
|
For the time being, I’m using the latest release.
1
2
| $ uv version
uv 0.5.4 (c62c83c37 2024-11-20)
|
This is what the error looks like:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| $ uv init test
Initialized project `test` at `/Users/mgreco/github.com/asdf0x2199/blog/test`
$ cd test
$ uv version
uv 0.5.4 (c62c83c37 2024-11-20)
$ uv add numpy statsforecast
Using CPython 3.12.4
Creating virtual environment at: .venv
Resolved 15 packages in 9ms
× Failed to download and build `llvmlite==0.36.0`
╰─▶ Build backend failed to determine requirements with `build_wheel()`
(exit status: 1)
[stderr]
Traceback (most recent call last):
File "<string>", line 14, in <module>
File
"/Users/mgreco/.cache/uv/builds-v0/.tmpgRNnS8/lib/python3.12/site-packages/setuptools/build_meta.py",
line 334, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=[])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/Users/mgreco/.cache/uv/builds-v0/.tmpgRNnS8/lib/python3.12/site-packages/setuptools/build_meta.py",
line 304, in _get_build_requires
self.run_setup()
File
"/Users/mgreco/.cache/uv/builds-v0/.tmpgRNnS8/lib/python3.12/site-packages/setuptools/build_meta.py",
line 522, in run_setup
super().run_setup(setup_script=setup_script)
File
"/Users/mgreco/.cache/uv/builds-v0/.tmpgRNnS8/lib/python3.12/site-packages/setuptools/build_meta.py",
line 320, in run_setup
exec(code, locals())
File "<string>", line 55, in <module>
File "<string>", line 52, in _guard_py_ver
RuntimeError: Cannot install on Python version 3.12.4; only versions
>=3.6,<3.10 are supported.
help: `llvmlite` (v0.36.0) was included because `test` (v0.1.0) depends
on `statsforecast` (v0.7.1) which depends on `numba` (v0.53.1) which
depends on `llvmlite`
|
If you are lucky, you can try adding dependencies sequentially.
1
2
3
| # the order is important
uv add statsforecast
uv add numpy
|
In my case, it solved the problem.
You can also keep using pip
for this specific case. The good thing about this
is that despite the limitation, we cannot simply use:
1
2
3
| uv venv
# inverted order of dependencies (simpler at the end)
uv pip install statsforecast numpy
|
I know that this can be time-consuming on a large dependency list, but maybe it
is something worth trying.