Py_Initialize之后导入模块

时间:2019-07-13 12:43:16

标签: python python-3.x python-c-api

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

我正在使用Python 3.6。

1 个答案:

答案 0 :(得分:0)

通过解决此问题:

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