在 Py_Initialize 之后导入模块

Import module after Py_Initialize

今天,我使用 PyImport_AppendInittab 附加 python 内置 C 的模块。PyImport_AppendInittab 需要在 Py_Initialize 之前调用。我无法完成然后再次初始化引擎。问题是现在我需要在 Py_Initialize 之后附加一些模块。有办法吗?

我正在使用 Python 3.6.

通过这样做解决了问题:

if (Py_IsInitialized()) {
    PyImport_AddModule(module_name);
    PyObject* pyModule = moduleInitFunc();
    PyObject* sys_modules = PyImport_GetModuleDict();
    PyDict_SetItemString(sys_modules, module_name, pyModule);
    Py_DECREF(pyModule);
}

看到这个answer