在 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。
今天,我使用 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。