John Dean wrote: > Hi > > I spent the whole of yesterday trying the get the following C code to > execute > > PyRun_String("def title();", Py_file_input, dict, dict); ^^^^^^^^^^^
Try using a colon here.... > PyRun_String("\treturn 'Foo Bar'", Py_file_input, dict, dict); > PyRun_String("x = title()", Py_file_input, dict, dict); > PyObject * result = PyRun_String("print x", Py_file_input, dict, dict); > printf( "The result is %s\n", PyObject_AsString( result ); Overall it seems to me that ther must be a better way to do such a thing - even in C. AFAIK it supports multiline-stringliterals. Why don't you do something like this: script = "\ def foo():\n\ return 'FooBar'\n\ x = title()\n\ print x\n" And then read that script line by line, feeding it to the parser. Or maybe the parser even groks that string at once - don't know that. Diez -- http://mail.python.org/mailman/listinfo/python-list