From 21c719bd0a0acf709de4d6dfe0d830aa60427e3f Mon Sep 17 00:00:00 2001 From: Delio Brignoli Date: Mon, 22 Aug 2016 12:28:22 +0200 Subject: [PATCH] builtinimport: add the module specified by -m to sys.modules as '__main__' --- py/builtinimport.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/py/builtinimport.c b/py/builtinimport.c index ef3545d653..3c912e2d4a 100644 --- a/py/builtinimport.c +++ b/py/builtinimport.c @@ -448,6 +448,8 @@ mp_obj_t mp_builtin___import__(size_t n_args, const mp_obj_t *args) { mp_obj_module_t *o = MP_OBJ_TO_PTR(module_obj); mp_obj_dict_store(MP_OBJ_FROM_PTR(o->globals), MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR___main__)); #if MICROPY_CPYTHON_COMPAT + // Store module as "__main__" in the dictionary of loaded modules (returned by sys.modules). + mp_obj_dict_store(&MP_STATE_VM(mp_loaded_modules_dict), MP_OBJ_NEW_QSTR(MP_QSTR___main__), module_obj); // Store real name in "__main__" attribute. Choosen semi-randonly, to reuse existing qstr's. mp_obj_dict_store(MP_OBJ_FROM_PTR(o->globals), MP_OBJ_NEW_QSTR(MP_QSTR___main__), MP_OBJ_NEW_QSTR(mod_name)); #endif