2013-09-24 27 views
4

我得到ironpython在单声道工作正常,但它不会导入logging模块。 执行此代码:IronPython ImportException:没有模块名为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,微软.Scripting.dll,Microsoft.Scripting.Metadata.dll。

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

回答

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

+0

感谢您的回答。是否有一种通用的,独立于平台的方式将标准库添加到路径中?我想这个硬编码路径只能在我的电脑上工作 –

+0

@ Chiel92是的,不要硬编码。我更新了这个问题。如果你用你的应用程序发布标准库,那么可以推断出它的(相对或绝对)路径。 –

+0

好的,这是一个很大的空间;)像150 MB。我想找到一种方法仍然使用系统范围的Python lib –