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
Summary
Using
uv.sourcesto 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.tomlRunning
uv syncresults in:In the above, commenting out
PyWinCtlwill work.Platform
Windows 10.0.19045 Build 19045
Version
uv 0.7.9 (13a86a2 2025-05-30)
Python version
Python 3.14.0a7