2013-09-24 50 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 –