Python 3.12

ModuleNotFoundError: No module named 'imp'

ModuleNotFoundError: No module named 'imp'

What it means

The deprecated imp module was removed in Python 3.12.

Why it happens

imp was deprecated since Python 3.4 and removed in 3.12. A dependency or your own code still imports it.

How to fix it

  1. Replace `imp` with `importlib` — e.g. `importlib.util.find_spec`, `importlib.import_module`, `importlib.machinery` instead of `imp.find_module` / `imp.load_module`.
  2. Upgrade any third-party package that still imports imp to a current release.
  3. Re-run your test suite on Python 3.12.

Related deadline: Lambda Python 3.9 EOL2027-02-01.

Find every instance in your project

The free EOLkits scanner runs in your browser (nothing uploaded) and flags this and related breakages across your IaC and dependency files.

Primary source: https://docs.python.org/3/whatsnew/3.12.html

Get the full migration audit — $299, hash-anchored PDF →