Skip to content

Fork when wheels only support a specific range #8492

Closed
@cbrnr

Description

@cbrnr

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:

  1. uv init example
  2. cd example
  3. 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",
    ]
    
  4. uv sync --python=3.12 works (same for 3.9, 3.10, and 3.11)
  5. uv sync --python=3.13 --no-build-package=scipy fails, even though it could (should?) use scipy==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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or improvement to existing functionalityresolverRelated to the package resolver

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions