[Python.NET] RunString does not work

Seshagiri Cherukuri seshagiri.cherukuri at gmail.com
Sun Mar 4 10:37:52 CET 2007


hi All,

I have embedded pythonnet into my C# application and this works great as far
as creating .net objects from python, executing methods etc.
Here I am using the RunSimpleString (the PyRun_SimpleString) wrapper to send
commands from the C# application to the pythonnet.

However I am facing the following problems:

1. After RunSimpleString, PyErr_Occurred or PyErr_Fetch are not able to
detect any exceptions even if they did occur
- for example, consider the code - curErr = PythonEngine.RunSimpleString(
"10/0\n");
- this code does return a -1 value indicating error.
- however after this none of PyErr_Occurred or PyErr_Fetch do not detect
this error
- from python documentation it looks like there is no way to obtain the
exception information

2. using RunString
- because of above problem I want to send a multi-line code including a
try-except: block
- I have tried using RunString with all the three modes - Py_eval_input,
Py_single_input and Py_file_input
- The RunString works only if the code does not have any .net objects or
does not include any .net exceptions
- If the code sent to RunString includes a .net object e.g. obj, then
RunString always returns in NameError, obj is not defined

3. Strangely, if I run the console application, it is able to work with .net
exceptions - both .net and user defined exceptions

4. Is this because of the new dictionary created while in RunString?

thanks

Sesh Cherukuri
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythondotnet/attachments/20070304/b1b255fc/attachment.htm 


More information about the PythonDotNet mailing list