fix for building blender as a python module,
changes to internal import behavior of py3.3 broke it.
This commit is contained in:
@@ -1454,6 +1454,8 @@ static PyObject *BPyInit_idprop_types(void)
|
||||
|
||||
submodule = PyModule_Create(&IDProp_types_module_def);
|
||||
|
||||
IDProp_Init_Types();
|
||||
|
||||
#define MODULE_TYPE_ADD(s, t) \
|
||||
PyModule_AddObject(s, t.tp_name, (PyObject *)&t); Py_INCREF((PyObject *)&t)
|
||||
|
||||
|
@@ -310,11 +310,33 @@ void BPY_python_start(int argc, const char **argv)
|
||||
(void)argv;
|
||||
|
||||
/* must run before python initializes */
|
||||
PyImport_ExtendInittab(bpy_internal_modules);
|
||||
/* broken in py3.3, load explicitly below */
|
||||
// PyImport_ExtendInittab(bpy_internal_modules);
|
||||
#endif
|
||||
|
||||
bpy_intern_string_init();
|
||||
|
||||
|
||||
#ifdef WITH_PYTHON_MODULE
|
||||
{
|
||||
/* Manually load all modules */
|
||||
struct _inittab *inittab_item;
|
||||
PyObject *sys_modules = PyImport_GetModuleDict();
|
||||
|
||||
for (inittab_item = bpy_internal_modules; inittab_item->name; inittab_item++) {
|
||||
PyObject *mod = inittab_item->initfunc();
|
||||
if (mod) {
|
||||
PyDict_SetItemString(sys_modules, inittab_item->name, mod);
|
||||
}
|
||||
else {
|
||||
PyErr_Print();
|
||||
PyErr_Clear();
|
||||
}
|
||||
// Py_DECREF(mod); /* ideally would decref, but in this case we never wan't to free */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* bpy.* and lets us import it */
|
||||
BPy_init_modules();
|
||||
|
||||
|
Reference in New Issue
Block a user