Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IronPython ImportException: No module named logging

I got ironpython working fine on mono, but it doesn't import the logging module. Executing this code:

ScriptEngine engine = Python.CreateEngine();
dynamic logging = engine.ImportModule("logging");

yields the following error:

IronPython.Runtime.Exceptions.ImportException: No module named logging

The IronPython assemblies I have included are up-to-date: IronPython.Modules.dll, Microsoft.Dynamic.dll, Microsoft.Scripting.dll, Microsoft.Scripting.Metadata.dll.

How can I make use of the logging module within Ironpython?

like image 947
chtenb Avatar asked Sep 24 '13 07:09

chtenb


1 Answers

It's not enough to add the assemblies to your C# application. logging is written in python, and it's part of the standard library. You'll have to add the standard library to IRONPYTHONPATH as well. You can do it like this:

var engine = Python.CreateEngine();
var paths = engine.GetSearchPaths();
paths.Add(@"C:\Path\to\your\standard\library");
engine.SetSearchPaths(paths);

If you need the standard library you would probably need to ship it with your application. My suggestion is to zip it and then add the zip file to the paths.

like image 199
Viktor Kerkez Avatar answered Sep 22 '22 20:09

Viktor Kerkez