If the repo expects a specific Python major/minor and the current Python does not match, it’s usually best to set up a matching environment before installing dependencies.
Example: set up a fresh Python 3.11 environment (Docker / Ubuntu) with uv
# Install uv
apt-get update
apt-get install -y --no-install-recommends curl ca-certificates
rm -rf /var/lib/apt/lists/*
curl -LsSf https://astral.sh/uv/0.9.7/install.sh | sh
export PATH="/root/.local/bin:$PATH"
# Install Python + create a venv
uv python install 3.11.8
uv venv --python 3.11.8 /opt/py311
# Use the new Python for installs/runs
/opt/py311/bin/python -VV
/opt/py311/bin/python -m pip install -U pip setuptools wheel
Prefer installing from the repo’s dependency files (avoid random upgrades), then run a quick import/smoke test.