Embedding - getting full error string

Elie B. elibabila at hotmail.com
Sun Feb 8 10:44:18 EST 2004


Hi,
I'm new to Python. I'm trying to embbed Python in my Windows
application having some success with redirecting the stdin/out to my
windows application using:

In my C++ code I use PyRun_SimpleString to execute this code:

import sys
import mymodule
class LOGwriter :
   def write(self, str):
   mymodule.printit(str)
sys.stdout = sys.stderr = LOGwriter()

than adding in C++:

static PyMethodDef mymodule_methods[] = {
	{"printit", mymodule_printit, METH_VARARGS, "prints"},
	{NULL,		NULL, 0 ,NULL}		/* sentinel */
};

static PyObject *mymodule_printit(PyObject *self, PyObject* args)
{
	char *s;
	PyArg_ParseTuple(args, "s", &s);
        PrintToWindow(s); <-- my function
	return NULL;
}


Well it seems to work ok, until a string with quotes arrives (usualy
when an error occurs). When an error occurs it cuts the error string
after the quote, so I always get
File "
and not the full error string, which should be somthing like File
"<string>", line 3... . I've tried all kind of ways around this, yet
with no sucess. Thanks in advance for any help.

Eli



More information about the Python-list mailing list