我在使用openpyxl使用嵌入在.net4.0应用程序中的IronPython运行时引擎保存excel文件时遇到了一个问题,但是在IronPython解释器中运行相同的代码时,我没有收到任何错误,并且保存成功。从字面上看,代码就这么简单:
import sys
sys.path.append(r'c:\python27\lib\site-packages')
import openpyxl
wb=openpyxl.Workbook()
wb.save(r'c:\save\to\somewhere.xlsx')
在.NET应用程序中运行此代码时,我得到以下堆栈跟踪:
^{pr2}$我用以下代码初始化python引擎:
_pythonEngine = Python.CreateEngine(engineDict);
_memStream = new System.IO.MemoryStream();
_streamWriter = new util.EventRaisingStreamWriter(_memStream);
_pythonEngine.Runtime.IO.SetErrorOutput(_memStream, _streamWriter);
_pythonEngine.Runtime.IO.SetOutput(_memStream, _streamWriter);
_streamwriter是一个包装器,用于将事件的输出发送到文本框。在
为什么我可以在没有翻译问题的情况下保存,而不是使用引擎?我尝试不重定向输出流,但发生了相同的错误。在
谢谢。在
如果您使用的是CPython stdlib的一部分:
IronPython的stdlib略有不同。当在解释器下运行时,它可能会获取ironpythonstdlib,但在您的程序中,它会获取CPython库。在
嵌入时,可以使用
engine.SetSearchPaths
来控制搜索路径。在相关问题 更多 >
编程相关推荐