I found a solution using sys.displayhook here: http://groups.google.com/group/comp.lang.python/browse_thread/thread/593cd28e568c32e1/1e0f930e7ac5ebb2?#1e0f930e7ac5ebb2
On Jun 18, 4:24 am, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > En Mon, 18 Jun 2007 01:45:38 -0300, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> escribió: > > > I'm using PyRun_String with Py_single_input for a python interpreter > > embedded in my application. I'm using Py_single_input. Py_single input > > is what I want, but it seems to output to stdout. Before when I was > > using Py_eval_input I was able to grab the result so I could print it > > in a text box: > > > PyObject *resultObject = PyObject_Str( rstring ); > > if( resultObject != NULL ) { > > char *string = PyString_AsString( resultObject ); > > } > > > But Py_eval_input is only for isolated evaluation, not what I want. > > Py_single_input gives "None" for the string. > > Maybe because it actually returns None? No it doesn't. I know the function returns something because when I used Py_eval_input, it returned the correct output. The only difference is thate Py_string_input outputs using sys.write (stdout) > > > I wrote a class that redirects std::cout, but this doesn't work for > > this, I'm guessing because it uses printf to stdout, not cout. > > > Anyone know how I can get the string so I can print it in a text box. > > From your description this should be working... try posting some more code > showing how you call PyRun_String and how you process the result... > > -- > Gabriel Genellina
-- http://mail.python.org/mailman/listinfo/python-list