1min.

1MIN · PYTHON

An old uv lockfile can block a Python interpreter upgrade

Simon Willison traced confusing Python 3.15 dependency failures to ignored uv.lock files left in library projects. One pinned watchfiles version attempted a build with PyO3 that supported only up to Python 3.14. Resolving dependencies afresh fixed his cases. The lesson is to inspect the selected dependency version when an interpreter upgrade unexpectedly triggers a native build.

Simon Willison · Nov 1, 2026

Why it matters

A stale local resolution can explain why a project fails even when newer compatible dependencies exist.

More context

His examples concern library repositories where lockfiles are ignored and were created by uv commands. Before changing one, inspect whether it is local residue or an intentionally maintained project lockfile, then review the resulting dependency changes.

Keep in mind

This is a practitioner troubleshooting note, not a general instruction to delete application lockfiles. Re-resolution can change versions and does not guarantee compatibility.

Original read

More engineering ideas, one minute at a time.

Explore more stories