5

我让 ironpython 在单声道上正常工作,但它不导入logging模块。执行此代码:

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

产生以下错误:

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

我包含的 IronPython 程序集是最新的:IronPython.Modules.dll、Microsoft.Dynamic.dll、Microsoft.Scripting.dll、Microsoft.Scripting.Metadata.dll。

如何使用 Ironpython 中的日志记录模块?

4

1 回答 1

8

将程序集添加到 C# 应用程序是不够的。logging是用python编写的,它是标准库的一部分。您还必须添加标准库IRONPYTHONPATH。你可以这样做:

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

如果您需要标准库,您可能需要将它与您的应用程序一起提供。我的建议是压缩它,然后将 zip 文件添加到paths.

于 2013-09-24T07:45:21.563 回答