
Hi,
I am using Python.Net http://python.net/ embedded inside an application. The application allows me to select and run a python file (which then allows me to use Python to access that application's C# SDK).
string code; using (var streamReader = new StreamReader(scriptFile, Encoding.UTF8)) { code = streamReader.ReadToEnd(); }
using (Py.GIL()) { PythonEngine.Exec(code); }
This works, except when the code imports a python module I have to quit and restart the application in order for the import to reflect any code changes (which is very slow for debugging).
How can I reload or reset the PythonEngine before running the code?
Cheers, Ebam

Hi Evan (Ebam?),
This was not possible until recently due to some issues with PythonEngine.Shutdown().
But it should be fixed in latest pythonnet 2.3.0 according to this bug report:
https://github.com/pythonnet/pythonnet/issues/245
If it still doesn't work for you, then please report back your environment, such as Python, .NET/Mono, and OS versions and architectures.
Cheers, Denis
On Sun, Apr 16, 2017, 9:08 PM Evan Davey evan.davey@ekidna-engineering.com wrote:
Hi,
I am using Python.Net embedded inside an application. The application allows me to select and run a python file (which then allows me to use Python to access that application's C# SDK).
string code; using (var streamReader = new StreamReader(scriptFile, Encoding.UTF8)) { code = streamReader.ReadToEnd(); }
using (Py.GIL()) { PythonEngine.Exec(code); }
This works, except when the code imports a python module I have to quit and restart the application in order for the import to reflect any code changes (which is very slow for debugging).
How can I reload or reset the PythonEngine before running the code?
Cheers, Ebam
Python.NET mailing list - PythonDotNet@python.org https://mail.python.org/mailman/listinfo/pythondotnet
participants (2)
-
Denis Akhiyarov
-
Evan Davey