[3.14] gh-149117: Set `ImportError.name` on errors from `runpy.run_module`/`run_path` (gh-149159) (#149257)
gh-149117: Set `ImportError.name` on errors from `runpy.run_module`/`run_path` (gh-149159) Set ImportError.name on errors from runpy.run_module/run_path `runpy.run_module()` and `runpy.run_path()` now set the `name` attribute of the `ImportError` they raise to the requested module name, matching the behaviour of a regular import statement (previously `name` was always `None`, which broke introspection). The `name=` kwarg is gated on `issubclass(error, ImportError)` because `_get_module_details()` is also used by `_run_module_as_main()` with a private `_Error` sentinel class. `_Error` does not subclass ImportError, and `BaseException.__init__` rejects unknown kwargs at the C level, so passing `name=` unconditionally would break the `python -m foo` codepath. (cherry picked from commit ff35fe4633cc6d3a30f6af8281dfa641783c1d07) Co-authored-by: W. H. Wang <mattwang44@gmail.com>
M
Miss Islington (bot) committed
753064e5b57842958e162ed1ee02f72f75fd0ee9
Parent: 312a596
Committed by GitHub <noreply@github.com>
on 5/2/2026, 2:54:02 AM