Environment Triage
When uv sync or pip install behaves unexpectedly, check the actual interpreter.
System Python is not authoritative if uv/venv selects a different interpreter.
# What uv ACTUALLY uses
uv run python --version
# What's pinned (this controls uv)
cat .python-version
# Confirm package is installed
uv pip show <package>
# Confirm import works in uv context
uv run python -c "import <package>; print(<package>.__version__)"
If optional deps require Python 3.12+ but .python-version is 3.11:
echo "3.13" > .python-version
rm -rf .venv && uv venv && uv sync --all-extras
python3 --version when using uvpython_version >= 3.12 marker, but uv was using 3.11