C#导入模块错误导入csv模块中的Ironpython

时间:2014-12-14 17:52:04

标签: c# python csv ironpython

我尝试在C#应用程序中执行Python脚本,但是当它尝试启动脚本时,我收到错误ImportException was unhandled No module name csv。我检查了Ironpython文件夹,并且有一个csv.py文件......?

代码I用于调用脚本:

 IDictionary<string, object> options = new Dictionary<string, object>();
 options["Argument"] = new[] { filePath, profile };
 var pyEngine = Python.CreateEngine(options);
 var pyScope = pyEngine.CreateScope();
 string script = "xccdf-xml2tsv.py";
 pyScope.SetVariable(profile, options);

 pyEngine.ExecuteFile(script, pyScope);

python文件:

#!/usr/bin/env python

###
# (C) 2010 Adam Crosby
# Licensed under:
#  http://creativecommons.org/licenses/by-nc-sa/3.0/
##
import csv
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import xml.etree.ElementTree as ET
xmlns = "http://checklists.nist.gov/xccdf/1.1"
...

1 个答案:

答案 0 :(得分:2)

您创建的IronPython引擎不知道它应该使用的标准库实现。您可以通过添加类似

的内容来指定它
var paths = pyEngine.GetSearchPaths();
paths.Add(@"C:\Program Files (x86)\IronPython 2.7\Lib");
pyEngine.SetSearchPaths(paths); 

您可以将其指向本地安装的铁蟒(如我的示例中所示)或使用appropriate NuGet package直接将其添加到您的项目中。您可能还必须将其部署到输出文件夹/ installer /...

请同时注意this answer以及this answer and comments,因为它们可能会提供其他信息。