Closed
Description
EDIT: See #8492 (comment) for an explanation of this behavior
I don't know if this is intentional, but the following project cannot be installed on Python 3.13 if I want to avoid building source distributions:
uv init example
cd example
- Use this
pyproject.toml
:[project] name = "example" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.9" dependencies = [ "scipy >= 1.13.1", ]
uv sync --python=3.12
works (same for3.9
,3.10
, and3.11
)uv sync --python=3.13 --no-build-package=scipy
fails, even though it could (should?) usescipy==1.14.1
, which is available as a binary wheel.
This surprised me because I expected that by specifying scipy >= 1.13.1
, uv would automatically choose a newer version with a binary wheel for Python 3.13. Indeed, there are binary wheels for version 1.13.1 available for Python 3.9 through 3.12, but only version ≥ 1.14.0 has a binary wheel for Python 3.13 (though it no longer supports 3.9). However, it seems that uv is trying to maintain consistent package versions across all supported Python versions.