Message 376676 - Python tracker
One option is to get the behavior before multi-phase initialization. We store extensions in a list. Once it's load, it cannot be unloaded before we exit Python. See _PyState_AddModule() and _PyState_AddModule(). Calling PyInit_xxx() the second time would simply return the existing module object. When we exit Python, the clear and/or free function of the module is called.