Set ImportError.name when raising the exception in the case of None

found in sys.modules.
This commit is contained in:
Brett Cannon 2012-04-15 14:15:31 -04:00
parent da4210f77d
commit 27fc52877c

View file

@ -2980,8 +2980,11 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *given_globals,
mod = PyDict_GetItem(interp->modules, abs_name); mod = PyDict_GetItem(interp->modules, abs_name);
if (mod == Py_None) { if (mod == Py_None) {
PyErr_Format(PyExc_ImportError, PyObject *msg = PyUnicode_FromFormat("import of %R halted; "
"import of %R halted; None in sys.modules", abs_name); "None in sys.modules", abs_name);
if (msg != NULL) {
PyErr_SetFromImportErrorWithName(msg, abs_name);
}
goto error_with_unlock; goto error_with_unlock;
} }
else if (mod != NULL) { else if (mod != NULL) {