IronPython ImportException: No module named loggin

2019-02-17 16:53发布

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?

1条回答
淡お忘
2楼-- · 2019-02-17 17:36

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.

查看更多
登录 后发表回答