Stale uv.lock files can break Python 3.15 builds without wheels
Original title: If in doubt, delete the uv.lock file
Willison says deleting uv.lock clears errors when a pinned dependency has no Python 3.15 wheel.
Simon Willison describes occasional Python dependency errors after moving to Python 3.15. He says uv run can leave gitignored uv.lock files that pin a package without a 3.15 wheel, citing a failed build of watchfiles==1.1.1. His workaround is to delete the lock file. Most of his library projects do not commit one.
- Library projects omit uv.lock so they do not pin versions for other users.
- uv run pytest can create gitignored lock files that are not committed.
- A watchfiles==1.1.1 build failed for lack of a Python 3.15 wheel.
From the original article
I've been getting the occasional confusing Python dependency error since switching over to Python 3. 15 and the rule I'm having to remember is: If in doubt, delete the uv. lock file Most of my projects are libraries which don't include a uv.
simonwillison.net
A short excerpt; the article and its images belong to the publisher. Summary, key facts and assessment above are AI-written from the article and can be wrong.