我对IronPython在托管时加载模块的方式感到困惑。
我正在使用通过MSI软件包安装的IronPython 2.7.7,并且已引用C:\Program Files (x86)\IronPython 2.7\IronPython.dll
和C:\Program Files (x86)\IronPython 2.7\Microsoft.Scripting.dll
。
有时IronPython无法加载引发的模块IronPython.Runtime.Exceptions.ImportException: 'No module named modulename'
,但有时一切正常。
例如,
var engine = Python.CreateEngine();
engine.CreateScriptSourceFromString("import datetime; print datetime.datetime.now()").Execute();
可行,但是
var engine = Python.CreateEngine();
engine.CreateScriptSourceFromString("import json; print json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])").Execute();
没有。
我发现了在中设置搜索路径的建议engine
。所以我加了
var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\Program Files (x86)\IronPython 2.7\Lib");
engine.SetSearchPaths(searchPaths);
现在使用json
模块的示例起作用了。
但是我从中获得的搜索路径engine
仅包含
"."
"D:\\IronPythonTest\\bin\\Debug\\Lib"
"D:\\IronPythonTest\\bin\\Debug\\DLLs"
而且我的文件夹下也Lib
没有DLLs
文件Debug
夹。
那么IronPython如何管理datetime
模块加载?
预先感谢您的澄清。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句