overriding pythons import - change in 2.6
was trying to hunt down why modules would not import in Blender3D with python 2.6, and found its caused by an extra argument to import that was making our own internal replacement for __builtin__.__import__ fail.
Added an #ifdef to work around this, for anyone else replacing the builtin import, this could save you some time.
static PyObject *blender_import( PyObject * self, PyObject * args ) { PyObject *exception, *err, *tb; char *name; PyObject *globals = NULL, *locals = NULL, *fromlist = NULL; PyObject *m; //PyObject_Print(args, stderr, 0); #if (PY_VERSION_HEX >= 0x02060000) int dummy_val; /* what does this do?*/
if( !PyArg_ParseTuple( args, "s|OOOi:bimport",
&name, &globals, &locals, &fromlist, &dummy_val) )
return NULL;
#else if( !PyArg_ParseTuple( args, "s|OOO:bimport", &name, &globals, &locals, &fromlist ) ) return NULL; #endif m = PyImport_ImportModuleEx( name, globals, locals, fromlist );
if( m )
return m;
else
PyErr_Fetch( &exception, &err, &tb ); /*restore for probable later use */
--
- Campbell
participants (1)
-
Campbell Barton