Skip to content

[tool.uv.sources] does not override transitive dependencies #13774

Description

@Avasam

Summary

Using uv.sources to point a dependency to a local wheel file works. But not if that dependency is also another dep's dependency.

Example to replicate on Windows + Python 3.14:

pyproject.toml

dependencies = [
  "PyWinCtl >=0.0.42", # Has pywin32 as a dependency
  "pywin32 >=307; sys_platform == 'win32' and python_version < '3.14'", # Python 3.13 support
]
[tool.uv.sources]
# wheel taken from https://github.com/mhammond/pywin32/actions/runs/15353580238
pywin32 = { path = "./scripts/pywin32-310.1-cp314-cp314-win_amd64.whl", marker = "python_version >= '3.14'" } # Python 3.14 support

Running uv sync results in:

Resolved 213 packages in 1ms
error: Distribution `pywin32==310 @ registry+https://pypi.org/simple` can't be installed because it doesn't have a source distribution or wheel for the current platform

hint: You're using CPython 3.14 (`cp314`), but `pywin32` (v310) only has wheels with the following Python ABI tags: `cp311`, `cp312`, `cp313`

In the above, commenting out PyWinCtl will work.

Platform

Windows 10.0.19045 Build 19045

Version

uv 0.7.9 (13a86a2 2025-05-30)

Python version

Python 3.14.0a7

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions