2014-01-22 24 views
0

我完全不熟悉Python,希望有人能夠幫助並指導我在這裏找到問題所在。IronPython - MissingMemberException試圖導入xml.etree.ElementTree

這是錯誤消息:

MissingMemberException: 'LightException' 對象有沒有屬性 'etree'

這是Python代碼,拋出它: import xml.etree.ElementTree as ET

我們在ac#項目中使用IronPython 2.7.3時,python代碼使用Execute()方法執行:

回答

1

這很簡單。當你運行引擎時,它不知道默認程序集位置(在我的機器上它是「C:\ Program Files(x86)\ IronPython 2.7」)。所以它會嘗試從當前工作目錄獲取模塊,然後嘗試從工作目錄的子目錄中獲取模塊。當然,它在那裏找不到模塊。 enter image description here

你應該做的:

IronPython的分配獲取路徑。其實你需要Lib子目錄的內容。可能你應該考慮如何將它部署到目標機器上,這樣你的發行版本也可以找到它。

使用代碼將它添加到Python的搜索路徑下

string dir = Path.GetDirectoryName(scriptPath);      
ICollection<string> paths = engine.GetSearchPaths(); 

if (!string.IsNullOrEmptydir)) 
{ 
    paths.Add(dir); 
} 
else 
{ 
    paths.Add(Environment.CurrentDirectory); 
} 
engine.SetSearchPaths(paths);