nox "Python interpreter X not found" Skipping a Session in CI
A nox session declares python="3.X", but that interpreter is not installed on the runner. By default nox skips the session (a silent gap); with strict mode it fails. Either way the version you wanted never ran.
What this error means
nox reports a session as skipped with "Python interpreter 3.12 not found", or fails outright under strict mode. The matrix looks green because the session was skipped, hiding that the target Python was missing.
nox > Python interpreter 3.12 not found. Skipping...
# or with strict mode:
nox > Python interpreter 3.12 not found.
Error: Missing interpreters: 3.12Common causes
Requested interpreter not installed
The runner does not have the Python version the session targets, so nox cannot create the venv for it.
Skipping masks the gap
nox skips missing interpreters by default, so a session you expected to run silently does not. The job still passes.
How to fix it
Provide every interpreter the sessions need
Set up the matrix of Python versions before invoking nox.
- uses: actions/setup-python@v5
with:
python-version: |
3.11
3.12
- run: noxFail loudly on missing interpreters
Turn skips into errors so a missing Python is caught instead of silently passing.
import nox
nox.options.error_on_missing_interpreters = True
# or on the CLI:
# nox --error-on-missing-interpretersHow to prevent it
- Install every interpreter your nox matrix targets before running nox.
- Enable
error_on_missing_interpretersin CI so skips become failures. - Keep the session matrix aligned with interpreters available on the runner.