Skip to content
Latchkey

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 output
nox > Python interpreter 3.12 not found. Skipping...
# or with strict mode:
nox > Python interpreter 3.12 not found.
Error: Missing interpreters: 3.12

Common 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.

.github/workflows/ci.yml
- uses: actions/setup-python@v5
  with:
    python-version: |
      3.11
      3.12
- run: nox

Fail loudly on missing interpreters

Turn skips into errors so a missing Python is caught instead of silently passing.

noxfile.py
import nox
nox.options.error_on_missing_interpreters = True
# or on the CLI:
# nox --error-on-missing-interpreters

How to prevent it

  • Install every interpreter your nox matrix targets before running nox.
  • Enable error_on_missing_interpreters in CI so skips become failures.
  • Keep the session matrix aligned with interpreters available on the runner.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →